Можно ли автоматически создавать собственные заголовки HTTP, используя nswag (TypeScript) - PullRequest
0 голосов
/ 01 июля 2018

Я использую nswag пакет npm для генерации http-сервисов, интерфейсов и т. Д.

Код машинописного текста для типичного служебного прокси выглядит следующим образом:

@Injectable()
export class TenantsServiceProxy {
...
    constructor(@Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {
    ...

    getTenantId(subdomain: string | null): Observable<number | null> {
    ...
        let options_ : any = {
            observe: "response",
            responseType: "blob",
            headers: new HttpHeaders({
                "Content-Type": "application/json", 
                "Accept": "application/json"
                })
            };

        return this.http.request("get", url_, options_).flatMap((response_ : any) => {
            return this.processGetTenantId(response_);
        }).catch((response_: any) => {
        ...

Относительно бита, где HTTP Headers детализированы:

Интересно, есть ли способ, чтобы инструмент nswag автоматически добавил дополнительный заголовок (Authorization для JWT-носителя в моем случае)?

Конечно, есть своего рода обходной способ замены бита заголовков с помощью текстового редактора следующим кодом:

headers: new HttpHeaders({
            "Content-Type": "application/json", 
            "Accept": "application/json",
            'Authorization': 'Bearer ' + localStorage.getItem('token')
        })

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

Может, кто-то уже решил эту проблему?

1 Ответ

0 голосов
/ 07 июля 2018

Включите UseTransformOptionsMethod, установите ClientBaseClass и определите метод в базовом классе с помощью кода расширения ...

См. https://github.com/RSuter/NSwag/wiki/SwaggerToTypeScriptClientGenerator#transform-the-options-or-the-result

...