我刚刚开始通过名为 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/