首页 > 解决方案 > 如何根据返回的数据类型将 ASP.Net Core api 返回值路由到适当的 observable

问题描述

我创建了一个带有 Angular 7 前端的 ASP.NET Core Web Api 后端。Api 中的一种方法可以将对象或数组返回给 Angular 服务。如何根据返回的数据类型路由到特定的 observable?我是 Angular 的菜鸟,因此我们将不胜感激。

Angular service call to Api:

getLinksFromSitus(situs: any) {
    this.http.post(this.baseUrl + 'getLinksFromSitus', situs).subscribe(data =>
    this.apiData.next(data)
    );
  }


Portion of Web Api that returns array if more than one APN present:

// if more than one item in list, get status information for each and return list to user to select appropriate apn
            if (propApn.Count > 1)
            {
                return Ok(propApn);               
            }


Portion of same method to return object if only one value for APN:

var resultsModel = new Results
            {
                ArcGisLink = arcGisLink,
                HistInfoLink = histInfoLink,
                PropInfoLink = propInfoLink          
            };

            return Ok(resultsModel);

标签: rxjsangular7asp.net-core-webapi

解决方案


你不能这样做。Typescript 只能在构建时基于静态分析键入内容,您的描述将要求 Typescript 在构建时知道您的 API 调用的结果,但它不会这样做。

您可以做的最好的事情是表明您的 API 调用可以返回您的两个:

public myApiFunc(req: MyRequestModel): Observable<any>

但这仍然需要您弄清楚在运行时返回的类型。


推荐阅读