Ich rufe die IBM Bluemix Administration API für Message Hub (aka Kafka), wie beschrieben here.Warum kann ich Themen nicht mithilfe der Kafka Administration-REST-API für den Message Hub von Bluemix hinzufügen und löschen?
Das Aufrufen des Endpunkts https://kafka-admin-prod02.messagehub.services.eu-gb.bluemix.net:443/topics
(mit einem entsprechenden Wert X-Auth-Token
entsprechend unserem API-Schlüssel und einem GET-Verb) scheint zu funktionieren - er gibt eine Liste der Themen zurück, die wir manuell im Bluemix Message Hub-Administratorbildschirm konfiguriert haben.
jedoch die gleiche URL mit dem Verb POST und einen Körper aus {name: 'mynewtopicname'}
und Content-Type
von application/json
Aufruf (dies scheint die richtige Syntax zu sein, nach der Swagger-Dokumentation für die API) funktioniert nicht - ich bekomme eine Ergebnis von "HTTP 405-Methode nicht zulässig". Das scheint zu passieren, ob ich GET, PUT, POST oder DELETE benutze (was auch bedeutet, dass ich ein Thema nicht löschen kann).
Mache ich etwas falsch?
(Ich verwende Message Hub auf der britischen Bluemix-Instanz, wenn es relevant ist).
Luis, danke! Das funktioniert. Wenn ich die Swagger-Datei erneut lese, kann ich sehen, dass alle Admin-APIs '/ admin' starten. Es scheint, als hätte Postman sie beim Import der Swagger-Datei automatisch falsch generiert - oder ich habe gerade einen Fehler gemacht! Für alle, die das lesen, musste ich auch den eingehenden "Content-Type" -Header auf "application/json" setzen - und es scheint, dass der JSON-Parser * sehr * pingelig ist, also müssen der Feldname und der Wert sein in Anführungszeichen; d. h. '{" name ":" mynewtopicname "}'. Jetzt funktioniert es! Vielen Dank. –
Der JSON-Parser benötigt doppelte Anführungszeichen, andernfalls wird er als ungültig betrachtet. Sie können einen beliebigen JSON-Linter oder Validator wie diesen http://jsonlint.com/ verwenden, um zu wissen, ob Ihr JSON gültig ist. –
Luis, huh. Ich habe das einfach überprüft und Sie haben wieder Recht;) Ich habe immer einfache Anführungszeichen in JSON gefunden, aber ich denke, ich habe laxe Parser verwendet. Scheint, dass sie nicht gültig sind, anders als in JS. Du lernst jeden Tag etwas :) –