【发布时间】:2017-03-01 05:32:55
【问题描述】:
我正在尝试学习如何实现 CRUD ReST API。我使用 JAX-RS 创建了一个简单的应用程序,并正在使用 Postman 测试我的 HTTP 方法。我的问题是,如何为 POST 方法的模型定义可选字段?
例如。 Person 包含 firstName、lastName 作为必填字段,age、gender 作为可选字段。
@XmlRootElement
public class Person {
private long id;
private String firstName;
private String lastName;
public Person() {}
public Person(long id, String firstName, String lastName) {
this.id = id;
this.firstName = firstName;
this.lastName = lastName;
}
//getter and setters omitted
上面是另一个资源的子资源,下面是addPerson服务方法用于POST到HashMap。
public Person addPerson(long userId, Person person) {
Map<Long, Person> persons = users.get(userId).getPersons();
person.setId(persons.size() + 1);
persons.put(person.getId(), person);
return person;
}
我想过构造一个模型,它的构造函数有多个不同的参数组合来实例化一个模型类,但这似乎效率不高。有人可以建议吗?
进一步编辑:这需要在处理 JSON 时完成。给定两个 JSON 格式的请求:
{
"firstName": "Jay",
"lastName": "Kay",
"age": "13"
}
和
{
"firstName": "Jay",
"lastName": "Kay"
}
两者都应该是可处理的,因为年龄(以及性别)是一个“可选属性”,所以它可以被省略,也可以有一个值。我遇到 JSON 解析器并尝试通读它们,因为这可能是处理此类请求的答案。
【问题讨论】:
-
你能提供你的模型和资源类吗?
-
@JoPeyper 我添加了一些编辑以显示一些示例。让我知道以上是否有意义?谢谢!
-
最后一行我还是不清楚。您到底想从 JSON 处理什么?
-
@AnandUndavia 我添加了进一步的编辑以阐明我想要完成的工作。我是 ReST 的新手,所以我为缺乏明确性表示歉意。
标签: java json rest post jax-rs