NSwag Angular 5 如何获得 json 响应?

Posted

技术标签:

【中文标题】NSwag Angular 5 如何获得 json 响应?【英文标题】:NSwag Angular 5 how to get the json response? 【发布时间】:2018-10-30 14:15:38 【问题描述】:

我正在访问一个 api,并使用 NSwagStudio 生成了一个类型脚本版本的 api 调用以用作服务。我从服务器得到响应,似乎工作正常,但我不知道如何使用响应访问 json 文件。我尝试订阅我正在调用的方法,但我总是得到 null 作为响应。任何帮助或指导将不胜感激。

这是一个由 NSwagStudio 生成的代码示例和我的订阅响应的实现。

apiSubmissionGetResultMessageGet(...)     
protected processApiSubmissionGetResultMessageGet(response: HttpResponseBase): Observable<void> 
        const status = response.status;
        const responseBlob = 
            response instanceof HttpResponse ? response.body : 
            (<any>response).error instanceof Blob ? (<any>response).error : undefined;

        let _headers: any = ; if (response.headers)  for (let key of response.headers.keys())  _headers[key] = response.headers.get(key); ;
        if (status === 200) 
            return blobToText(responseBlob).flatMap(_responseText => 
            return Observable.of<void>(<any>null);
            );
         else if (status !== 200 && status !== 204) 
            return blobToText(responseBlob).flatMap(_responseText => 
            return throwException("An unexpected server error occurred.", status, _responseText, _headers);
            );
        
        return Observable.of<void>(<any>null);
    


这就是我要订阅的地方:

getSubmissionDetails(string): void 
this.client.apiSubmissionGetSubmissionDocumentGet('documentId')
  .subscribe(
    data => 
      this.submissionList = this.submissionList;
      console.log('data: ', data);
    ,
    (error: any) => this.errorMessage = <any> error);

【问题讨论】:

【参考方案1】:

返回类型是Observable&lt;void&gt;,表示它不返回任何东西...

检查操作是否在 swagger 规范中有响应类型并重新生成。

【讨论】:

以上是关于NSwag Angular 5 如何获得 json 响应?的主要内容,如果未能解决你的问题,请参考以下文章

在 NSwag SwaggerUi 中实现 JwtBearer 身份验证

.NetCore2.1 WebAPI 根据swagger.json自动生成客户端代码

NSwag生成客户端调用代码

如何使用NSwag防止查询字符串中的空值

如何获得 Angular 5 组件元素的位置?

如何在请求标头上调用需要不记名令牌的 NSwag 客户端方法?