Swashbuckle - Как опустить только методы REST API, но не сущности - PullRequest
0 голосов
/ 05 ноября 2018

Мы используем swashbuckle для генерации клиентского кода, где нам нужны только типы классов моделей, но не методы, которые генерируются для вызова API. Для этого у нас есть собственная общая реализация. Есть ли способ, как опустить эти методы, только не пропуская классы моделей?

Когда я использую [ApiExplorerSettings(IgnoreApi = true)] на всех моих контроллерах, мой выходной файл js пуст.

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

apiGet(): Promise<Metadata> {
    let url_ = this.baseUrl + "/api/MetadataRepository/Catalog";
    url_ = url_.replace(/[?&]$/, "");

    let options_ = <RequestInit>{
        method: "GET",
        headers: {
            "Content-Type": "application/json", 
            "Accept": "application/json"
        }
    };

    return this.http.fetch(url_, options_).then((_response: Response) => {
        return this.processApiGet(_response);
    });
}

protected processApiGet(response: Response): Promise<Metadata> {
    const status = response.status;
    let _headers: any = {}; if (response.headers && response.headers.forEach) { response.headers.forEach((v: any, k: any) => _headers[k] = v); };
    if (status === 200) {
        return response.text().then((_responseText) => {
        let result200: any = null;
        let resultData200 = _responseText === "" ? null : JSON.parse(_responseText, this.jsonParseReviver);
        result200 = resultData200 ? Metadata.fromJS(resultData200) : new Metadata();
        return result200;
        });
    } else if (status !== 200 && status !== 204) {
        return response.text().then((_responseText) => {
        return throwException("An unexpected server error occurred.", status, _responseText, _headers);
        });
    }
    return Promise.resolve<Metadata>(<any>null);
}
...