我正在尝试创建一个应用程序,该应用程序基本上可以让 android 设备上的用户发送一条消息,该消息立即出现在 rails 应用程序中。有没有人对我用来做这件事有什么建议?

最佳答案

这是一个快速演练。

准备基础应用程序

让我们创建一个新的 rails 应用程序

$ rails new simple-message
$ cd simple-message/

我们现在将创建一个名为 Message 的 RESTful 资源,它将管理来自您的手机的消息。
$ rails generate scaffold Message title:string content:text

创建将包含消息的表:
$ rake db:migrate

启动绑定(bind)服务器并将浏览器指向 http://0.0.0.0:3000/messages

从那里您可以手动创建新消息,该消息将显示为列表。

您的 API 已经存在

对于您可以使用浏览器导航的每个页面,都有一个相应的 View 可以接受来自其他客户端的编程调用。

如果您浏览 http://0.0.0.0:3000/messages.xml,您将获得一个包含所有消息的 xml。带 curl :
$ curl http://localhost:3000/messages.xml
<?xml version="1.0" encoding="UTF-8"?>
<messages type="array">
  <message>
    <created-at type="datetime">2010-11-27T18:24:36Z</created-at>
    <title>Just a message</title>
    <updated-at type="datetime">2010-11-27T18:24:36Z</updated-at>
    <id type="integer">1</id>
    <content>With some content</content>
  </message>
</messages>

是时候添加一条新消息了:
$ curl -X POST -H 'Content-type: text/xml' -d '<message><title>Hello</title><content>How are you</content></message>' http://0.0.0.0:3000/messages.xml
<?xml version="1.0" encoding="UTF-8"?>
<message>
  <created-at type="datetime">2010-11-27T18:40:44Z</created-at>
  <title>Hello</title>
  <updated-at type="datetime">2010-11-27T18:40:44Z</updated-at>
  <id type="integer">2</id>
  <content>How are you</content>
</message>

您的 Android 客户端必须充当 curl 才能添加新消息。

保护您的网络应用程序

现在您需要一些身份验证以仅允许特定用户充当管理员并限制您的 API 的使用。在挖掘在 Rails 中实现身份验证的各种方法之前:
  • 您的用户应该在发布消息之前进行身份验证吗?
  • 网络应用程序是否应该接受来自其他服务(即 Twitter、Facebook、Google、OAuth、OpenID...)的身份验证或针对您自己的用户数据库的身份验证?
  • 您的 API 是否对其他客户端开放,或者只有您的 Android 客户端可以发布消息?
  • 你需要知道谁发布了消息(即用户登录)?
  • 是否要阻止单个用户或应用程序向您的 Web 应用程序发布消息?

  • 您可以找到不同策略的精彩回顾 here

    10-07 13:53
    查看更多