gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 20:56:51 26 4
gpt4 key购买 nike

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com