android - 如何制作一个 java 对象以从我的 Rails API 接收模型?

标签 android ruby-on-rails spring robospice

我刚刚开始通过名为 RoboSpice 的库学习 Android Spring,该库用于异步 RESTFUL 任务。我的目标是将 android 应用程序连接到 rails api。它还使用 jackson 。我掌握了它的窍门,但我无法解决的主要问题是我如何在 java 中创建一个对象类,然后执行 POST 或 GET 并期望从 Rails 模型或它如何知道如何在模型中保存发布的数据。例如,如果我有一个名为 Interview 的模型,它属于一个用户(有很多),其中包含工作、日期、时间、公司等信息。

我将如何编写该对象?该对象类是否需要一个非常具体的结构?我如何使用 get 从用户那里检索采访?任何解释或指向好的教程的链接都会有很大帮助。

谢谢

最佳答案

我已经使用 Retrofit 在我的 Rails 应用程序和 Android 应用程序之间进行通信。我以为它只是 json,但显然它也适用于 XML。

这是主网站的链接 page , 这是 page 的链接谈到支持 xml。

Retrofit 使 android 和 Restful API 之间的通信变得非常容易。您可以在上面的第一个链接中获取所有详细信息。

Android RestFul API 访问的最后一个优秀资源。本博客post结合使用 Retrofit 和 Otto(也来自 square)。这实际上是我设置链接的方式。由于 retrofit 支持 xml,我认为这篇博文中的所有内容也适用于基于 XML 的 API。

我认为您的问题的很大一部分是关于转换过程的。改造使用 Simple ,对于xml,它默认使用gson代替json,但是转换过程非常相似。您需要做的主要事情是定义一个 java 类,该类具有与 api 发送/期望的 xml 中的 xml 节点匹配的字段。转换器会将这些节点映射到 java 对象字段,反之亦然。

这是一个示例(直接来自上面的简单教程链接)。 java 类基本上只是您要来回发送的字段以及这些字段的 getter 和 setter。

嵌套的 Java 类"template",转换器在进行反序列化时将填充

@Root
public class Configuration {

   @Element
   private Server server;

   @Attribute
   private int id;

   public int getIdentity() {
      return id;
   }

   public Server getServer() {
      return server;           
   }
}

public class Server {

   @Attribute
   private int port;

   @Element
   private String host;

   @Element
   private Security security;

   public int getPort() {
      return port;           
   }

   public String getHost() {
      return host;           
   }

   public Security getSecurity() {
      return security;           
   }
}

public class Security {

   @Attribute
   private boolean ssl;

   @Element
   private String keyStore;

   public boolean isSSL() {
      return ssl;           
   }

   public String getKeyStore() {
      return keyStore;           
   }
}

以及它将序列化的 xml

<configuration id="1234">
   <server port="80">
      <host>www.domain.com</host>
      <security ssl="true">
         <keyStore>example keystore</keyStore>
      </security>
   </server>
</configuration>

关于android - 如何制作一个 java 对象以从我的 Rails API 接收模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27407579/

相关文章:

ruby-on-rails - 使用符号输入调用类方法

spring - 如何停止在 Spring 中覆盖 bean

spring - dockerized 环境中的 Keycloak 和 Spring Boot Web 应用程序

php - 如何在特定时间(计划时间)从php向android应用程序发送通知?

android - 如何为选项卡 TabWidget 添加父对齐?

ruby-on-rails - 当我想测试我的助手类时,无法在 ActionView::TestCase 中使用 flash

ruby-on-rails - 如何从 Rails 事件记录中返回查询,以便我可以将它们传回客户端日志控制台

android - 无法在 s3 中获取更新的对象?

android - 为什么布局不符合指定的权重?

spring - Spring Integration DSL 的错误处理中不包含消息 header