2016-11-25 3 views
0

Новый с REST и API Gateway.Добавить API в Конг

Я установил Kong с Cassandra на dev-машине, и я пытаюсь добавить свой API (приложение для загрузки пружин), но, прочитав документацию, я изо всех сил пытаюсь заставить ее работать.

Мой API:

http://ff-nginxdev-01:9003/fund-information-services/first-information/fund/{fundId} 

когда я бегу

http http://ff-nginxdev-01:9003/fund-information-services/first-information/fund/630 

    HTTP/1.1 200 
    Content-Type: application/json;charset=UTF-8 
    Date: Fri, 25 Nov 2016 14:47:30 GMT 
    Transfer-Encoding: chunked 
    X-Application-Context: application:9003 

    { 
     "assetSplit": { 
      "allocationHistories": [ 
       { 
        "key": { 
         "asset": { 
          "description": "Other Far East", 
          "id": 18 
         }, 
         "assetSplit": "09", 
         "effectiveDate": 1430348400000 
        }, 
    ...... 
    ...... 

Все, выглядят прекрасно, и я в состоянии получить сообщение JSon.

Добавление API в Гонконге:

http POST http://ff-nginxdev-01:8001/apis/ name=fund-information upstream_url=http://ff-nginxdev-01:9003/ request_path=/fund-information-services 


    HTTP/1.1 201 Created 
    Access-Control-Allow-Origin: * 
    Connection: keep-alive 
    Content-Type: application/json; charset=utf-8 
    Date: Fri, 25 Nov 2016 14:39:45 GMT 
    Server: kong/0.9.4 
    Transfer-Encoding: chunked 

    { 
     "created_at": 1480084785000, 
     "id": "fdcc76d7-e2a2-4816-8f27-d506fdd32c0a", 
     "name": "fund-information", 
     "preserve_host": false, 
     "request_path": "/fund-information-services", 
     "strip_request_path": false, 
     "upstream_url": "http://ff-nginxdev-01:9003/" 
    } 

тестирование Kong API Gateway:

http http://ff-nginxdev-01:8000/fund-information-services/first-information/fund/630 

HTTP/1.1 502 Bad Gateway 
Connection: keep-alive 
Content-Type: text/plain; charset=UTF-8 
Date: Fri, 25 Nov 2016 14:44:33 GMT 
Server: kong/0.9.4 
Transfer-Encoding: chunked 

An invalid response was received from the upstream server 

Я знаю, что я что-то не хватает, но это мне не понятно.

+0

Nginx вероятно, не может решить 'ff-nginxdev-01'.Обязательно настройте Nginx на использование распознавателя, способного его разрешить (вы можете сделать это через конфигурационный файл Kong) и в идеале использовать FQDN. – thibaultcha

ответ

0

По умолчанию плагин Dynamic SSL связывает специальный SSL-сертификат с API-интерфейсом request_host. Вы только что определили request_path в своем API, и это означает, что плагин SSL не применяется, если вы используете request_path.

Вы можете прочитать, чтобы понять, почему это так, в: this issue

Чтобы сделать запрос работы, я думаю, вы должны прочитать о том, как прокси-АНИ в: Proxy Reference

Вот мое решение для вашей проблемы:

метод 1: Изменить "strip_request_path" к истинному

"strip_request_path": true 

Этот метод предположим, йо у не уточнил request_host первый

Метод 2: Использование request_host вместо

"request_host" : "your_api" 

Затем в заголовке запроса, вы должны добавить request_host:

Пример запроса:

curl -i -X POST --url http://ff-nginxdev-01:8000/fund-information-services/first-information/fund/630 --header 'Host: your_api' 

и он будет работать