Как использовать бессерверную-openapi-документацию с бессерверным шаблоном Typescript?

#typescript #serverless-framework #serverless #openapi #aws-serverless

#typescript #бессерверный фреймворк #бессерверный #openapi #aws-бессерверный

Вопрос:

Проблема заключается в следующем:

Я стремлюсь документировать бессерверный API AWS, используя бессерверную платформу с плагином open API для документации API.

Проблема, с которой я сталкиваюсь, заключается в том, что бессерверная конфигурация, созданная в файле serverless.ts, не имеет поля документации, в нем есть только это определение:

 interface Http {
    path: string;
    method: string;
    cors?: boolean | HttpCors;
    private?: boolean;
    async?: boolean;
    authorizer?: HttpAuthorizer;
    request?: HttpRequestValidation;
}
  

Шаги по воспроизведению проблемы:

  • Создайте бессерверный проект с шаблоном Typescript:

    $ sls create -t aws-nodejs-typescript —path testName -n AppName

  • Добавить плагин openapi

     plugins: ['serverless-webpack', 'serverless-openapi-documentation'],
      
  • Замените раздел функций в serverless.ts следующим:

     functions: {
      hello: {
        handler: 'handler.hello',
        events: [
          {
            http: {
              method: 'get',
              path: 'hello',
              documentation: {
                summary: "Create something"
              },
            }
          }
        ]
      }
    }
      

В строке документации появится ошибка, подобная этой:

Тип ‘{ http: {метод: строка; путь: строка; }; документация: {сводка: строка; }; }’ не может быть присвоен типу ‘Событие’. Литерал объекта может указывать только известные свойства, а «документация» не существует в типе «Событие».

Однако, если вместо использования шаблона typescript (т. Е. aws-nodejs-typescript) мы используем шаблон yml (т. Е. aws-python), ключ документации может быть добавлен, и плагин open API работает должным образом.

Означает ли это, что плагин Open API еще не поддерживает Typescript? или, скорее, мне не хватает какой-либо конфигурации?

Спасибо!

Комментарии:

1. Сообщение об ошибке генерируется из-за компоновки typescript, а не из бессерверного плагина openapi-documentation.

2. Хотя это верно @BennyThomas, добавление @ts-ignore приводит к serverless openapi generate тому, что команда выдает ошибку : "service" property is missing in serverless.ts . Кто-нибудь сталкивался с решением?