Как я могу использовать пасеку с JSON-RPC
Я пытаюсь использовать apiary.io для документирования API на основе JSON-RPC. Я могу получить отформатированные страницы, но консоль просто не работает.
С JSON-RPC у вас обычно есть только 1 URI, как в случае с нашим API. Из-за этого при попытке определить методы редактор чертежей выдает предупреждение
Action with method POST already defined...
Я подумал, что мог бы проигнорировать это, но в консоли консоли при тестировании он возвращает только пример ответа для первого определенного действия. У кого-нибудь есть обходной путь для этого?
1 ответ
Из того, что я понимаю из спецификации и примеров JSON-RPC, несколько запросов и ответов могут работать для вас лучше, чем определение POST
конечные точки несколько раз.
# My API
## JSON-RPC [/endpoint]
### Doing something [POST]
+ Request Sum of numbers (application/json-rpc)
{"method": "sum", "params": {"a":3, "b":4}, "id":0}
+ Response 200 (application/json-rpc)
{"result": 7, "error": null, "id": 0}
+ Request Posting a message (application/json-rpc)
{"method": "postMessage", "params": ["Hello all!"], "id": 99}
+ Response 200 (application/json-rpc)
{"result": 1, "error": null, "id": 99}
Минусы: Ваш API будет разбит на одну или две конечные точки, а отдельные запросы не будут видны в ToC.
Плюсы: логика сопряжения запрос-ответ на макете сервера Apiary позволит вам использовать некоторые стратегии (также описанные на странице, ссылки на которые приведены выше) для вызова ответа, отличного от первого. Однако, поскольку эти стратегии работают только (во время публикации этого ответа) с заголовками или кодами состояния, и они не проверяют тело полезной нагрузки входящего запроса, вы, вероятно, все еще не сможете легко различить ваши запросы в консоли.
Возможным обходным решением будет дать дополнительные заголовки для ваших запросов, таких как X-Request: 1
, X-Request: 2
и т. д., так что фиктивный сервер может различать их и возвращать правильный ответ.
Вы можете использовать трюк с привязкой, уникальным путем фрагмента в URL-адресе конечной точки API.
# Group Awesnome JSON-RPC API
## Entity A [/#A]
### Procedure A [POST]
### Procedure B [POST]
## Entity B [/#B]
### Procedure C [POST]
### Procedure D [POST]