我有个问题。我使用的是asp.net核心3网络应用程序接口。Angular 8应用客户端是使用nSwag版本13.2.1.0生成的。规范是在Swashbuckle.AspNetCore 5中生成的。
我得到的结果是:
**
* @param body (optional)
* @return Success
*/
seller(body: RegisterSellerRequest | undefined): Observable<TokenResponse> {
let url_ = this.baseUrl + "/api/register/seller";
url_ = url_.replace(/[?&]$/, "");
const content_ = JSON.stringify(body);
let options_: any = {
body: content_,
observe: "response",
responseType: "blob",
headers: new HttpHeaders({
"Content-Type": "application/json-patch+json",
"Accept": "application/json"
})
};正如你所看到的responseType:"blob“被生成了,这对我们的angular应用的拦截器来说并不好。有没有办法将响应设置为application/json?!在我的控制器中,我像这样设置了swagger属性:
[ApiExplorerSettings(GroupName = Constatns.PublicSwaggerGroup)]
[SwaggerOperation(OperationId = "registerSeller")]
[HttpPost("api/register/seller")]
[ValidateModel]
[AllowAnonymous]
[ProducesResponseType((int)HttpResponseType.OK, Type = typeof(TokenResponse))]
[ProducesResponseType((int)HttpResponseType.BadRequest)]
[Produces("application/json")]
public async Task<TokenResponse> RegisterSeller([FromBody] RegisterSellerRequest data)
{}发布于 2020-02-13 06:00:48
我认为目前还没有简单的方法来改变这一点。这是将所有内容加载为blob,然后根据响应类型将其转换为json或二进制的最简单方法。改变这一点将意味着生成器模板变得更加复杂。
https://stackoverflow.com/questions/59775307
复制相似问题