json - 创建一个 Ember 数据适配器以从 Flickr API 中提取数据

标签 json rest ember.js model adapter

我正在构建一个需要使用 Flickr API 提取照片信息的 Ember 应用程序。我想要一些关于如何编写适配器以将此信息提取到我的 Ember 应用程序中的建议。我对 Flickr API 的调用返回了以下形式的 JSON:

{
"photos": {
    "page": 1,
    "pages": 2,
    "perpage": 100,
    "total": "123",
    "photo": [
        {
            "id": "1234567890",
            "owner": "1234567@123",
            "secret": "1234567890",
            "server": "1111",
            "farm": 1,
            "title": "Some Title",
            "ispublic": 1,
            "isfriend": 0,
            "isfamily": 0
        },...
        ]
    },
 "stat": "ok"
}

根据此响应的格式,我确定我不能使用 JSONAPIAdapter,而必须使用 RESTAdapter。我真正感兴趣的唯一响应部分是照片阵列。这部分响应似乎也经过适当格式化以适合 Ember 数据模型,因为它为主键提供了 id。我花了很多时间查看 docs 以找到解决此问题的方法,但我仍然对这些适配器和序列化程序的工作方式感到非常困惑。我需要采取哪些步骤来自定义我的适配器以将这些数据正确地提取到照片模型中?提前谢谢你。

最佳答案

这是一本关于这个主题的好书:Ember Data in the Wild: Getting Ember Data to Work With Your API ,作者 David Tang - 还有这篇优秀的博客文章:Fit Any Backend Into Ember with Custom Adapters & Serializers来自 Ember Igniter。

https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key={api-key}&tags=flower&per_page=3&format=json

会出现:

{
  photos: {
    page: 1,
    pages: 71281,
    perpage: 3,
    total: "213841",
    photo: [
      {
        id: "35314184896",
        owner: "33472394@N00",
        secret: "e02e15d7c3",
        server: "4198",
        farm: 5,
        title: "Bird's-foot Trefoil",
        ispublic: 1,
        isfriend: 0,
        isfamily: 0
      },
    ]
  },
  stat: "ok"
}

因此,您需要为“照片”创建一个模型 + 一个适配器来获取数据,然后在序列化程序中 munge/重新格式化数据,ember-data 希望它成为 normalizeResponse() 或一些方法组合将其放入数组中。照片的 URL 在哪里?

也请查看 David 的这篇文章:Ember Data and Custom APIs - 5 Common Serializer Customizations

这是一个粗略的。我只是想弄个小玩意,但没有适配器。祝你好运!

关于json - 创建一个 Ember 数据适配器以从 Flickr API 中提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44578819/

相关文章:

php - 如果我需要这些键同时具有值​​(从数据库传递),如何将键添加到 PHP 数组?

rest - Golang fasthttp 请求很慢

java - OpenCSV - 将 List<String[]> 转换为 List<Integer> 列表?

javascript - Ember ActiveModelAdapter URL 不带下划线?

java - 如何在android中使用GSON创建JSONArray

java - 将 JAVA String 转换为 JSON 对象时出现 NullPointerException

api - 架构设计 - REST API 支持由移动应用程序完成的 Facebook 登录

ember.js - 在函数调用中计算表达式

javascript - Ember,如何从自定义适配器继承

javascript - 错误类型错误 : Cannot read property '0' of null | Angular 7