【问题标题】:REST API and static pages (best solution)REST API 和静态页面(最佳解决方案)
【发布时间】:2015-05-02 19:07:21
【问题描述】:

我在 API 开发方面相对较新。我经常面临不同的问题并且有很多问题。主要问题是“如何按照最佳实践和模式实施某些东西”。
我的目标不仅仅是编写 API 并忘记它,而是维护并使其易于他人使用。

现在我对静态页面和JSON 响应有疑问。
在我的网站上,我有一些静态页面 (About Us, Contact Us, Shipping, Payment......),因此具有静态上下文的页面本质上是 html 和图像。

因此,我需要在我的应用程序(在本例中为 Android 独立应用程序)中包含此页面,作为应用程序的一部分,但它们不应被硬编码,而是将使用 API 从站点下载,以保持更新。

我有一些问题:

  1. URL 应该是什么样子,应该是一些常量 url (http://supersite.com/api/aboutus,http://supersite.com/api/contactus ...)。还是应该看起来像 http://supersite.com/api/articles/42

  2. JSON 响应结构应该是什么样子。这里的问题是静态页面的内容有很大的不同,例如Contact Us页面会有这样重要的信息:电话号码,电子邮件并且可以是JSON响应中的独立属性。 About Us 页面还有另一个主要部分。并且可以有很多这样的页面。如何保持这种统一?

  3. 也许最好将 JSON 响应统一为服务器属性(简短描述、全文、图像......)并发送原始文本甚至 html 并在客户端上工作。但这似乎不是一个好主意。

也许还有另一种正确的方法来实现这一点。 或者它根本不是 API 的一部分,应该以另一种方式完成。

我会感谢大家,提前感谢您的帮助。

【问题讨论】:

  • 这个问题太宽泛了,甚至无法开始回答,所以我投票结束。但是,这里有一些建议可以帮助您入门:不要追求完美,尤其是因为您是初学者。开始着手您的项目,着眼于关注点分离和其他 SOLID 原则,但同样,尽量不要绝对这样做。这个过程中的失败将比第一次做对要好得多。至于 REST……是的。根 URL 应该是可调整的,但实际的 CRUD 和 GET 调用应该遵循 RESTful 约定。
  • 感谢您的回答。是否有一些好的文章或构建良好的 API 的真实示例?

标签: php android api rest url


【解决方案1】:

我建议遵循 REST API 设计。在您的情况下,您只有静态页面。这意味着您可以拥有如下 URL:

GET    /api/pages/{id}
POST   /api/pages
PUT    /api/pages/{id}

您的 {id} 可以是主键 (int)、guid 或唯一字符串。对于静态网页,我通常建议使用 SeoUrl (about-us, contact-us)

当您的数据结构是可变的时,您可以创建键值对或对象列表。它可以是这样的:

{
   "name":"About Us",
   "id":"about-us",
   "text":"Some HTML text",
   "properties":[
      {
         "key":"phone",
         "value":"72273726",
         "order":1
      },
      {
         "key":"email",
         "value":"my@mail.com",
         "order":2
      }
   ]
}

当然,还有更多方法,最终的解决方案绝对取决于您。尝试搜索“restful api design”相关的文章。

【讨论】:

  • 感谢您的回答,这样的方法是可能的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-05
  • 1970-01-01
  • 2011-01-20
  • 2020-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多