Использовать ресурсы AWS или Swagger API Import for API Gateway? - PullRequest
0 голосов
/ 15 января 2019

Я собираюсь настроить шлюз AWS API через Cloudformation и задаюсь вопросом, что является лучшим решением:

следует ли мне использовать ресурсы AWS для ресурсов и методов или есть ли лучший способ импортировать хорошо известный файл OpenAPI (Swagger), который у нас есть, в ресурс шлюза API?

Из моих исследований я обнаружил, что использование swagger имеет некоторые ограничения (https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-known-issues.html), но с другой стороны это своего рода стандарт для создания API.

Таким образом, полное знакомство с AWS Cloudformation может иметь некоторые недостатки, которых я сейчас не вижу. Вот почему я прошу опыт у кого-то, кто был в той же ситуации. Благодарен за любые советы ...

Merci A

Ответы [ 3 ]

0 голосов
/ 13 февраля 2019

В настоящее время вы можете писать свои шаблоны, используя SAM (модель без сервера https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html), если вам не нравится безсерверная структура. Некоторые из преимуществ заключаются в том, что вы пишете меньше кода облачной информации и можете локально отлаживать / тестировать свои лямбда-выражения / пошаговые функции.

0 голосов
/ 14 февраля 2019

Вот мои два цента за лучшую практику среди ваших решений:

При разработке продуктов swagger или пасека являются отличными инструментами для документирования вашего API и быстрого макета API перед их реализацией. С фиктивным API и документацией в руках (скажем, менеджера по продукту) становится легко начать с твердого плана развития. Но такие инструменты, как swagger, могут автоматически макетировать спецификацию API, и если вы хотите импортировать эту спецификацию только для симуляции API, то эта функция импорта - отличный инструмент для использования, в противном случае это не так. Позвольте мне объяснить, почему.

Импортируя API и организуя ресурсы AWS непосредственно из Swagger, вы вводите множество ограничений, основным из которых является процесс разработки, который не включает в себя такую ​​среду, как serverless или zappa. Это заставит нас напрямую писать лямбда-функции, используя консоль AWS или AWS cli, и усложнит архитектуру проекта.

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

При использовании любого фреймворка лучше начинать с эталонного образца фреймворка и делать реализацию, соответствующую документации. Изучив преимущества и ограничения этой платформы, мы можем решить, соответствует ли она нашей архитектуре.

Кроме того, ИМО, этот метод не используется широко, и в дальнейшем поиск помощи может оказаться затруднительным, поскольку проект становится более сложным.

надеюсь, это поможет.

0 голосов
/ 15 января 2019

Лично я считаю, что лучший способ разработки ресурсов шлюза API - это использование Serverless Framework , его очень легко использовать и очень легко интегрировать с другими сервисами AWS, т. Е. Lambda.

Также под капотом без сервера есть только шаблоны облачной информации, поэтому он очень гибкий.

...