适用于Linux的移动应用程序的RESTful API开发指南

时间:2015-02-11 06:49:03

标签: linux mobile-application restful-architecture

我是RESTful API协议的新手,希望借助http服务器在Linux系统下为通用移动应用程序创建该协议。

是否有任何人有想法或文档来为移动应用程序启动RESTful API协议开发?

请尽快给我或帮助我制定协议。

1 个答案:

答案 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

它仍然太清晰,但在这种情况下,chatmessages是不同的实体,而在更复杂的应用程序中,您将不得不添加实体。

例如,如果您想更新聊天的标题,在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对于移动应用程序来说已经足够了,而且更容易理解和实现。