OpenApi / Swagger - В чем разница между клиентом и сервером? - PullRequest
1 голос
/ 01 ноября 2019

Я создал службу RESTful, предоставляющую доступ к конечной точке с использованием OpenApi 3.0 с использованием yaml

. Когда я ее создаю, она автоматически генерирует каталог client и каталог server.

Я успешно использую серверный API в качестве конечной точки, которая принимает запросы.

Однако клиентский API генерируется из точно того же yaml ..., принимающего тот же тип аргумента и возвращающего тот же тип, что исервер.

Насколько я понимаю, клиент отправляет запросы на внешнюю службу, а сервер получает запросы от внешней службы.

Если это так, почему OpenApi определяет клиента и сервер одинаково, а не предоставить средства для их индивидуальной настройки?

1 Ответ

2 голосов
/ 01 ноября 2019

Вы правы:

Насколько я понимаю, клиент отправляет запросы к внешней службе, а сервер получает запросы от внешней службы.

В основном этопример реализации вашей спецификации.

Они оба построены из одного контракта OpenAPI, и клиент может вызвать сервер, и он будет работать, когда они согласятся с различными API и схемами данных, описанными в спецификации.

client - это библиотека, которую вы могли бы использовать в приложении, которое использует API, в том смысле, что вы можете использовать ее так же, как и запросы к API, описанные в определении OpenAPI.

server - это просто пример серверного приложения, предоставляющего интерфейс HTTP, описанный в OpenAPI.

Ни один из них не очень полезен сам по себе, так как клиент просто вызывает API-интерфейсы правильно, а сервер просто выставляет конечную точку и выполняет сериализацию / десериализацию любых данных запроса или ответа. Реализация API остается на ваше усмотрение ..

Обычно полезные биты, которые я использую из сгенерированных спецификаций, - это классы model, поскольку это помогает гарантировать, что код моего приложения (будь то клиент или сервер)основан на правильной схеме.

...