LIGHT

  • News
  • Docs
  • Community
  • Reddit
  • GitHub

Start Local Light Router

In the previous step, we have started the light-oauth2 services locally. Now let’s start the light-router instance to be responsible for service discovery and to serve the resources later.

For development, we are going to use the proxy from the create-react-app to connect to the light-router for all API accesses. Once the development is done, the SPA application will be built and copied to a folder named lightapi which match the domain lightapi.net

To start the local light-router instance, we are going to use a docker-compose.

cd ~/networknt/light-config-test/light-router/local-portal
docker-compose up -d

The above commands will start a light-router container, and it will listen to port 8443. The local-portal folder above is almost identical as light-portal in the same parent folder with the following modifications.

client.yml

As we are starting the light-oauth2 services with Docker containers without Let’s Encrypt certificates that match the domain names. In the light-router configuration folder, we need to update the client.yml to disable the verfyHostname.

verifyHostname: false

consul.yml

The consulUrl is changed from the static IP to the lightapi.net host and switched from https to http.

consulUrl: http://lightapi.net:8500

docker-compose.yml

In the docker-compose.yml, we are going to map port 443 to container port 8443. In a production deployment, we usually use iptables to map the ports instead of exposing 443 from the Docker.

version: '2'

services:

  light-router:
    image:  networknt/light-router:latest
    networks:
    - localnet
    ports:
    - 443:8443
    volumes:
    - ./config:/config
    - ./faucet/build:/faucet/build
    - ./webclient/build:/webclient/build
    - ./lightapi/build:/lightapi/build
    - ./taiji/build:/taiji/build

#
# Networks
#
networks:
    localnet:
        # driver: bridge
        external: true

After the router instance is started, you should have access to the virtual host site https://lightapi.net

Test

To ensure that the light-oauth2 APIs can be accessed from the router, let’s test with light-oauth2 client service.

Calling the client service directly.

curl -k https://lightapi.net:6884/oauth2/client?page=0

The response should be something like following.

[{"clientId":"f7d42348-c647-4efb-a52d-4c5787421e72","clientSecret":null,"clientType":"public","clientProfile":"mobile","clientName":"PetStore Web Server","clientDesc":"PetStore Web Server that calls PetStore API","ownerId":"admin","scope":"petstore.r petstore.w","customClaim":"{\"c1\": \"361\", \"c2\": \"67\"}","redirectUri":"http://localhost:8080/authorization","authenticateClass":null,"derefClientId":null}]

Calling the client service through light-router.

curl -k https://lightapi.net/oauth2/client?page=0

You will receive nothing but a browser redirect 302 status code to ask you to authenticate yourself. To see the exact redirect status code, use the following command.

curl -k -v ttps://lightapi.net/oauth2/client?page=0

At this moment, all backend services are up and running. Let’s start portal view SPA from the light-portal repository in the next step.

  • About Light
    • Overview
    • Testimonials
    • What is Light
    • Features
    • Principles
    • Benefits
    • Roadmap
    • Community
    • Articles
    • Videos
    • License
    • Why Light Platform
  • Getting Started
    • Get Started Overview
    • Environment
    • Light Codegen Tool
    • Light Rest 4j
    • Light Tram 4j
    • Light Graphql 4j
    • Light Hybrid 4j
    • Light Eventuate 4j
    • Light Oauth2
    • Light Portal Service
    • Light Proxy Server
    • Light Router Server
    • Light Config Server
    • Light Saga 4j
    • Light Session 4j
    • Webserver
    • Websocket
    • Spring Boot Servlet
  • Architecture
    • Architecture Overview
    • API Category
    • API Gateway
    • Architecture Patterns
    • CQRS
    • Eco System
    • Event Sourcing
    • Fail Fast vs Fail Slow
    • Integration Patterns
    • JavaEE declining
    • Key Distribution
    • Microservices Architecture
    • Microservices Monitoring
    • Microservices Security
    • Microservices Traceability
    • Modular Monolith
    • Platform Ecosystem
    • Plugin Architecture
    • Scalability and Performance
    • Serverless
    • Service Collaboration
    • Service Mesh
    • SOA
    • Spring is bloated
    • Stages of API Adoption
    • Transaction Management
    • Microservices Cross-cutting Concerns Options
    • Service Mesh Plus
    • Service Discovery
  • Design
    • Design Overview
    • Design First vs Code First
    • Desgin Pattern
    • Service Evolution
    • Consumer Contract and Consumer Driven Contract
    • Handling Partial Failure
    • Idempotency
    • Server Life Cycle
    • Environment Segregation
    • Database
    • Decomposition Patterns
    • Http2
    • Test Driven
    • Multi-Tenancy
    • Why check token expiration
    • WebServices to Microservices
  • Cross-Cutting Concerns
    • Concerns Overview
  • API Styles
    • Light-4j for absolute performance
    • Style Overview
    • Distributed session on IMDG
    • Hybrid Serverless Modularized Monolithic
    • Kafka - Event Sourcing and CQRS
    • REST - Representational state transfer
    • Web Server with Light
    • Websocket with Light
    • Spring Boot Integration
    • Single Page Application
    • GraphQL - A query language for your API
    • Light IBM MQ
    • Light AWS Lambda
    • Chaos Monkey
  • Infrastructure Services
    • Service Overview
    • Light Proxy
    • Light Mesh
    • Light Router
    • Light Portal
    • Messaging Infrastructure
    • Centralized Logging
    • COVID-19
    • Light OAuth2
    • Metrics and Alerts
    • Config Server
    • Tokenization
    • Light Controller
  • Tool Chain
    • Tool Chain Overview
  • Utility Library
  • Service Consumer
    • Service Consumer
  • Development
    • Development Overview
  • Deployment
    • Deployment Overview
    • Frontend Backend
    • Linux Service
    • Windows Service
    • Install Eventuate on Windows
    • Secure API
    • Client vs light-router
    • Memory Limit
    • Deploy to Kubernetes
  • Benchmark
    • Benchmark Overview
  • Tutorial
    • Tutorial Overview
  • Troubleshooting
    • Troubleshoot
  • FAQ
    • FAQ Overview
  • Milestones
  • Contribute
    • Contribute to Light
    • Development
    • Documentation
    • Example
    • Tutorial
“Start Local Light Router” was last updated: July 7, 2020: fixes #184 update light-oauth2 client get url with page=0 (7486339)
Improve this page
  • News
  • Docs
  • Community
  • Reddit
  • GitHub
  • About Light
  • Getting Started
  • Architecture
  • Design
  • Cross-Cutting Concerns
  • API Styles
  • Infrastructure Services
  • Tool Chain
  • Utility Library
  • Service Consumer
  • Development
  • Deployment
  • Benchmark
  • Tutorial
  • Troubleshooting
  • FAQ
  • Milestones
  • Contribute