何处为Angular2服务中的API数据进行映射逻辑

时间:2016-10-14 11:26:12

标签: angular rest api

在我的Angular2应用程序中,我有一个Injectable WebcamsService。此服务应该可以获得所有网络摄像头或添加新的网络摄像头。

....

@Injectable()
export class WebcamsService {

  constructor (private http: Http) {}

   getWebcams(id: number) {
     ...
   }


  addWebcam(...) {
    ...
  }

}

API的响应(GET / api / v1 /网络摄像头):

{
  "data": [
    {
      "id": 1,
      "url": "http://www.xyz.de",
      "name": "WebcamName",
      "location": {
         "country": "XY",
         "city": "Z"
      }
    },
    {
      "id": 1,
      "url": "http://www.xyz.de",
      "name": "WebcamName",
      "location": {
         "country": "XY",
         "city": "Z"
      }
    }
  ]
}

API的响应(POST / api / v1 /网络摄像头):

{
  "data": {
    "spot_id": "1",
    "name": "X",
    "url": "Y",
    "location": {
       "country": "XY",
       "city": "Z"
    }
  }
}

当然,我想将这些响应映射到对象。这些课程看起来像这样:

网络摄像头的模型

export class Webcam {
  id: number;
  url: string;
  name: string;
  location: Location;
}

位置的模型

export class Location {
  country: string;
  city: string;
}

现在我必须将响应映射到我的对象。我认为有几种选择:

  • 服务中的映射功能
  • 构造函数中的映射(将json传递给模型的构造函数)

还有其他选择吗? 我应该使用哪个选项?

0 个答案:

没有答案