【发布时间】:2018-08-15 03:40:04
【问题描述】:
我正在使用 Restet,我想知道如果设置了 ServerResource 实体类型是否可能,例如对于这种类型的实体:
@XStreamAlias("role")
@ApiModel
public class Role {
private String entityId;
private String name;
@ApiModelProperty(required = false, value = "")
private List<String> aclRead;
@ApiModelProperty(required = false, value = "")
private List<String> acLWrite;
@ApiModelProperty(required = false, value = "")
private Boolean publicRead;
@ApiModelProperty(required = false, value = "")
private Boolean publicWrite;
public String getEntityId() {
return entityId;
}
public void setEntityId(String entityId) {
this.entityId = entityId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<String> getAclRead() {
return aclRead;
}
public void setAclRead(List<String> aclRead) {
this.aclRead = aclRead;
}
public List<String> getAcLWrite() {
return acLWrite;
}
public void setAcLWrite(List<String> acLWrite) {
this.acLWrite = acLWrite;
}
public Boolean getPublicRead() {
return publicRead;
}
public void setPublicRead(Boolean publicRead) {
this.publicRead = publicRead;
}
public Boolean getPublicWrite() {
return publicWrite;
}
public void setPublicWrite(Boolean publicWrite) {
this.publicWrite = publicWrite;
}
}
我们如何能够在不需要传递所有字段的情况下进行 POST,对于这个示例,我们只想从客户端请求中传递“名称”,但这样做会抛出 415 - Unsupported Media Type
在我们的客户端中,我们只传递这个 JSON
{
"role" : {
"name" : "AdminRole"
}
}
对于 Resource 的 Get 响应,返回类型也是 Role,因此客户端将通过 Restlet 编组获取所有字段 entityId、name、aclRead、aclWrite、publicRead 和 publicWrite。
我们遇到的问题是我们无法 POST。
【问题讨论】:
-
415 适用于不受支持的媒体类型,而不适用于不可处理的实体。