我是RESTful API协议的新手,希望借助http服务器在Linux系统下为通用移动应用程序创建该协议。
是否有任何人有想法或文档来为移动应用程序启动RESTful API协议开发?
请尽快给我或帮助我制定协议。
答案 0 :(得分:0)
首先,您必须知道RESTfull不是协议。这只是一些建议,描述了如何实现协议。
接下来,您必须确保需要遵循RESTfull规则。在大多数情况下,简单的JSON-RPC足以用于移动应用程序。
这是一个简单的例子。假设您要在iOS / Android应用中实现聊天。在这种情况下,您只需要几个方法:
GET /chat/list # list existing chats
params: {}
GET /chat/134/messages # get messages from chat 134
params: {
page: 0
}
POST /chat/134/send # send message
params: {
text: "Hello everyone!"
}
这只是一个非常简单的API,足以满足移动应用的需求。但是如果你想遵循RESTfull概念,你必须实现你的API:
GET /chat/ # list existing chats
GET /chat/134/messages/ # get messages from chat 134
POST /chat/134/messages/ # send message to chat
它仍然太清晰,但在这种情况下,chat
和messages
是不同的实体,而在更复杂的应用程序中,您将不得不添加实体。
例如,如果您想更新聊天的标题,在RESTfull中您必须执行以下操作:
UPDATE /chat/134/
并在HTTP标头中发送新标题。
但是在简单的JSON-RPC中它看起来更容易:
POST /chat/134/changeTitle
params: {
title: "we are talking about cats"
}
好的,这仍然是一个简单的例子,但如果我们想在聊天中禁止某些用户,我们应该如何在RESTfull范例之后实现它呢?它看起来像:
DELETE /chat/134/users/23/
好的,我们可以。但DELETE
方法不是BAN
方法。 HTTP协议中没有BAN
方法。因此,我们必须使用DELETE
或使用新方法扩展HTTP协议。如此复杂的解决方案对于这种简单的操作,不是吗?
但是对于简单的JSON-RPC,我们可以添加新方法:
POST /chat/134/banUser
params: {
userId: 23
}
因此,我建议您在将实现绑定到RESTfull范例之前考虑更多。在大多数情况下,简单的JSON-RPC对于移动应用程序来说已经足够了,而且更容易理解和实现。