2016-04-08 4 views
0

Ich habe eine API und Kong eingerichtet. Ich habe Kong erfolgreich installiert. Tatsächlich kann ich über curl auf cli auf meine APIs zugreifen. Wenn ich jedoch Postman benutze, den ich die ganze Zeit benutze, bekomme ich die AntwortKong reagiert 404, wenn auf vi Postman zugegriffen wird

Ps. Ich bin neu in kong, also bitte bitte mit mir.


$ kong start 
[INFO] Kong 0.7.0 
[INFO] Using configuration: /etc/kong/kong.yml 
[INFO] Setting working directory to /usr/local/kong 
[INFO] database...........cassandra keyspace=kong ssl=verify=false enabled=false replication_factor=1 contact_points=127.0.0.1:9042 replication_strategy=SimpleStrategy timeout=5000 data_centers= 
[INFO] dnsmasq............address=127.0.0.1:8053 dnsmasq=true port=8053 
[INFO] serf ..............-profile=wan -rpc-addr=127.0.0.1:7373 -event-handler=member-join,member-leave,member-failed,member-update,member-reap,user:kong=/usr/local/kong/serf_event.sh -bind=0.0.0.0:7946 -node=precise64_0.0.0.0:7946 -log-level=err 
[INFO] Trying to auto-join Kong nodes, please wait.. 
[WARN] Cannot auto-join the cluster because no nodes were found 
[WARN] ulimit is currently set to "1024". For better performance set it to at least "4096" using "ulimit -n" 
[INFO] nginx .............admin_api_listen=0.0.0.0:8001 proxy_listen=0.0.0.0:8000 proxy_listen_ssl=0.0.0.0:8443 
[OK] Started 

$ curl -i -X POST --url http://localhost:8001/apis/ --data 'name=geospatial' --data 'upstream_url=http://192.168.33.10/' --data 'request_host=192.168.33.10' 
HTTP/1.1 201 Created 
Date: Fri, 08 Apr 2016 14:38:22 GMT 
Content-Type: application/json; charset=utf-8 
Transfer-Encoding: chunked 
Connection: keep-alive 
Access-Control-Allow-Origin: * 
Server: kong/0.7.0 

{"upstream_url":"http:\/\/192.168.33.10\/","id":"240e6cc6-626f-4629-9551-0d341a57adba","name":"geospatial","created_at":1460126302000,"request_host":"192.168.33.10"} 

Als ich die api locken ...

$ curl -i -X GET -H "Host: 192.168.33.10" "http://192.168.33.13:8000/api/v1/" 
HTTP/1.1 200 OK 
Date: Fri, 08 Apr 2016 14:56:04 GMT 
Content-Type: application/json 
Content-Length: 70 
Connection: keep-alive 
Server: Werkzeug/0.11.4 Python/2.7.6 
X-Kong-Upstream-Latency: 4 
X-Kong-Proxy-Latency: 0 
Via: kong/0.7.0 

{"status": 200, "message": 200, "data": "Hello World!", "error": null} 

Wie auch immer, wenn ich versuche Postman zu verwenden, erhalte ich eine 404-Statusantwort. mit diesem Körper

{ 
    "request_path": "/api/v1/", 
    "message": "API not found with these values", 
    "request_host": [ 
    "192.168.33.13" 
    ] 
} 

bin ich etwas fehlt?

Haftungsausschluss: Ich benutze Postman, weil ich faul bin und weil meine Kunden hauptsächlich Postman auch verwenden werden. Also sagen Sie mir nicht, stattdessen curl zu benutzen :)

Antwort

2

Genau das gleiche Problem aufgetreten. Um nach Kong zu senden, müssen Sie Host-Header hinzufügen, aber Postman hat einige eingeschränkte Header, die blockiert sind und Host ist einer von ihnen. Sie müssen Chrome Inspector herunterladen, um den Host-Header zu senden. Für weitere Details - https://www.getpostman.com/docs/requests

+0

Danke !!!, das war eine späte aber immer noch die Antwort ich suche :) Danke für den Link .. wusste nicht, dass sie Kopfzeilen Einschränkungen hatten ... – rrw

1

Sie müssen den Header-Parameter "Host" einrichten, damit Kong Ihre API findet.

können Sie sehen, dass Ihr curl Befehl haben diese Parameter

-H "Host: 192.168.33.10" 
+0

Ja, ich fügte hinzu, dass auf die Anfrage, immer noch das gleiche. – rrw

+0

Sie können die "Generate Code" -Option in Postman überprüfen und mit Ihrem Curl-Befehl übereinstimmen. Auf diese Weise erfahren Sie, ob Sie alles richtig eingerichtet haben. –

+0

So behebe ich, wenn ich einen ähnlichen Fehler habe. –

Verwandte Themen