![]() |
1
17
我建议,只要代码是干的,API和你的网站在同一个项目中并不是一件坏事*。正如您所指出的,拥有单独的代码基是一个挑战,因为您必须使它们与您所做的每一个功能/错误修复保持同步。如果它们在同一个地方,就更容易维护。只要保持代码干燥,这个方法就是明显的赢家。 我将提供来自控制器的XML和JSON,其子域由Rails的路由引擎处理。当有人了解api.site.com/resource.xml的模式,并试图访问不存在的资源时,这真的没什么大不了的。只要你的API被清晰地记录下来,当你试图访问一个不在你的API中的资源时,你会优雅地失败/出错,那就没问题了。我将尝试返回一条消息,说明资源不可用,以及API文档的URL。这不应该是任何API使用者的运行时问题,因为这应该是发现API的一部分。 我只要0.02美元。
*干=不要重复你自己。干代码意味着您不会复制粘贴或重写站点和API的相同内容;而是从多个地方提取和调用。 |
![]() |
2
3
我认为你最好的解决办法是把你的前两点合并起来。
我建议使用JSON而不是XML:唯一有利于XML的是XPath,它在返回的数据中是无用的。JSON带来更好的响应时间(以及更可读的数据,以便更好地进行调试!)P)。另外,大多数语言都可以读取JSON。例如,PHP可以使用
对于控制器,您可以对其命名,但这不是一项义务,在某些情况下,最好避免使用大量条件进行胖操作。使用Rails3路由器,在子域(api.webapp.com)中分离api调用是很简单的。 对于模型,您应该使用与整个应用程序相同的方法。 新的Rails路由器语法是sugar,你会喜欢的。祝您好运,玩得开心!:) |
![]() |
Jace Johnson · 我应该使用多个地图功能还是只使用一个 1 年前 |
|
Pop Bob · Api返回UnsupportedMediaType 1 年前 |
![]() |
Mr FoX · 如何从mysqli输出json数组,而[重复] 1 年前 |