我问这个问题是因为访问过的某些网站似乎正在使用RESTful API来访问数据,即使它在网站上也是如此...
例如:我的网站将有6页,其中5页使用数据库。但是,我也会为我的合作伙伴提供REST api ......
所以,问题是:
在我的网站上,最好是通过
mysqli_query
直接访问数据库,还是使用带有Ajax调用的RESTful API加载数据?
请注意:我将使用Zend Framework 2作为我的RESTful API,除非有人有更好的选择...我知道Node.js和PHP ...我能够写它在Ruby或其他什么东西,如果它对我更好...需要一个意见......
答案 0 :(得分:1)
使用RESTful API。
REST的规范是我们使用HTTP方法,他称之为动词。(GET,POST,PUT,DELETE)。
直接请求会限制它,或者您最多使用两种方法(动词) - GET和POST。
为此你必须这样做:
GET /user/frederick/edit
GET /user/frederick/update
GET /user/frederick/delete
GET /user/new
使用RESTful API:
GET /user/frederick/
POST /user/new/
PUT /user/frederick/
DELETE /user/frederick/
答案 1 :(得分:1)
使用自己的API的好处是您不必编写重复的代码。例如,您可能有generate_for_rest
和generate_for_server
函数执行相同的操作,只是以不同的格式发出数据。尽可能多地重用自己的API是个好主意。
也就是说,我觉得网站会通过自己的RESTful API与自己沟通,这有点不寻常。这需要HTTP请求(尽管它应该非常快)并且数据转换两次。相反,拥有一个生成所需数据的API和一个将数据转换为格式的外观会更有意义。
例如,你可以有一个函数get_all_users
。在内部,您可以使用get_all_users
将结果作为可以立即使用的php数据结构获取。在响应HTTP请求的控制器中,您可以执行JSON转换,但是您不应该进行任何重复工作来获取内部或外部使用的数据。