Не уверен, что это лучший или рекомендуемый способ, но я обошел все очевидные ограничения API, устанавливая заголовки в jquery перед вызовом сгенерированного SDK.
jquery.ajaxSettings.headers = { ... }
Похоже, что при предоставлении securityDefinitions
, как отмечено в комментарии, генератор будет учитывать токен в конфигурации: https://github.com/swagger-api/swagger-codegen/blob/2.3.0_BACKUP_ONLY/modules/swagger-codegen/src/main/resources/typescript-jquery/api.mustache#L174
Отчасти проблема в том, что вообще невозможно было использовать привязки typcript-jquery, сгенерированный код выглядит так:
let dfd = $.Deferred();
$.ajax(requestOptions).then(
(data: models.Operation, textStatus: string, jqXHR: JQueryXHR) =>
dfd.resolve(jqXHR, data),
(xhr: JQueryXHR, textStatus: string, errorThrown: string) =>
dfd.reject(xhr, errorThrown)
);
return dfd.promise();
Хотя мое новое в теме мнение таково, что оно должно выглядеть примерно так:
let dfd = $.Deferred();
$.ajax(requestOptions).then(
(data: models.Operation, textStatus: string, jqXHR: JQueryXHR) =>
dfd.resolve({ request: jqXHR, body: data }),
(xhr: JQueryXHR, textStatus: string, errorThrown: string) =>
dfd.reject({ request: xhr, body: errorThrown})
);
return dfd.promise();
Учитывая, что подпись сгенерированного метода:
public someMethod(): JQueryPromise<{ response: JQueryXHR; body: models.Operation; }>
Не уверен насчет части reject
, но и компилятор, и intellisense счастливее.