Add an endpoint
The main feature of an API Gateway is to proxy requests to different services, so let's do this.
1. Adding a new endpoint
Now that you are authenticated, you can send a request to /apis
to create a proxy.
Create an example.json
file containing your endpoint configuration:
{
"name" : "my-endpoint",
"active" : true,
"proxy" : {
"listen_path" : "/example/*",
"upstreams" : {
"balancing": "roundrobin",
"targets": [
{"target": "http://www.mocky.io/v2/595625d22900008702cd71e8"}
]
},
"methods" : ["GET"]
}
}
And now let's add it to Janus:
http -v POST localhost:8081/apis "Authorization:Bearer yourToken" "Content-Type: application/json" < example.json
curl -X "POST" localhost:8081/apis -H "Authorization:Bearer yourToken" -H "Content-Type: application/json" -d @example.json
This will create a proxy to http://www.mocky.io/v2/595625d22900008702cd71e8
(which is a fake api) when you hit Janus on GET /example
.
2. Verify that your API has been added
You can use the REST API to query all available APIs and Auth Providers. Simply make a request
to /apis
:
http -v GET localhost:8081/apis "Authorization:Bearer yourToken" "Content-Type: application/json"
curl -X "GET" localhost:8081/apis -H "Authorization:Bearer yourToken" -H "Content-Type: application/json"
3. Forward your requests through Janus
Issue the following request to verify that Janus is properly forwarding
requests to your API. Note that by default Janus handles proxy
requests on port :8080
:
http -v GET http://localhost:8080/example
curl -vX "GET" http://localhost:8080/example
A successful response means Janus is now forwarding requests made to http://localhost:8080
to the elected upstream target (chosen by the load balancer) that we configured in step #1, and is forwarding the response back to us.
Next we'll learn how to modify existing endpoint.