Как включить файлы cookie при использовании сгенерированного клиента автозапуска? - PullRequest
0 голосов
/ 02 октября 2019

Я использую AutoRest для генерации клиента Typescript для RESTful API на основе файла спецификации OpenAPI, например:

autorest --typescript --use-internal-constructors --override-client-name=MyApiClient --input-file=API.Swagger.json --namespace=MyApi.Client --typescript.output-folder=C:\One\ts --add-credentials=true

Когда я звоню с использованием сгенерированного клиента API через CORS, это нене включает файлы cookie.

JavaScript fetch предоставляет эту конструкцию для включения файлов cookie:

fetch(uri, { credentials: 'include' })

Но я не мог придумать, как это сделать с помощью сгенерированного AutoRest APIклиент. Я просмотрел msRest.ts, чтобы посмотреть, смогу ли я использовать любой из доступных типов учетных данных.

[Обновление]:

После дальнейшего изучения я понял, что у параметра параметров для клиента есть свойство withCredentials, который может быть установлен в true. В конце концов, node_modules\@azure\ms-rest-js\es\lib\xhrHttpClient.js делает вызов API. В частности, эта линия выполняет вызов:

xhr.send(request.body === undefined ? null : request.body);

Я тщательно отладил и убедился, что для withCredentials установлено значение true, но по какой-то причине он не отправляет файлы cookie! Если я звоню с использованием javascript fetch, он отправляет файлы cookie, а клиент, сгенерированный с помощью функции автоматического восстановления, не отправляет файлы cookie!

1 Ответ

0 голосов
/ 02 октября 2019

Возможно, вы захотите попробовать OpenAPI Generator , который поддерживает OpenAPI / Swagger v2 и v3. (Только спецификация OpenAPI v3 поддерживает параметр cookie).

Я помню, что мы добавили поддержку параметров cookie в генераторы TypeScript. Пожалуйста, откройте тикет / номер , если вам нужна помощь сообщества OpenAPI Generator.

...