我有一个对象,我需要在api网关中创建一个json模型。 我尝试这样做,但是在测试时,它会将一个对象传递给一个lambda函数,并且其中的所有内容均为null。我测试了lambda,它工作正常。
这是我要转换的对象:
public class NewStatusRequest {
public Status status;
public List<String> tags;
public String token;
public NewStatusRequest(){}
public NewStatusRequest(Status status, List<String> tags) {
this.status = status;
this.tags = tags;
}
}
public class Status {
public LinkProfilePicture profilePicture;
public String firstName;
public String lastName;
public String handle;
public String timestamp;
public String text;
public LinkAttachmentImage attachedPicture;
public Status(){}
public Status(String firstName, String lastName, String handle,
String text, String timestamp, LinkProfilePicture picture) {
this.firstName = firstName;
this.lastName = lastName;
this.handle = handle;
this.text = text;
this.timestamp = timestamp;
this.profilePicture = picture;
}
}
public class LinkProfilePicture{
private static final String LINK = "some http link";
private static final String LINK_ENDING = "_profilePicture.txt";
public String link;
public LinkProfilePicture(String handle){
this.link = LINK + handle + LINK_ENDING;
}
}
public class LinkAttachmentImage {
public String link;
public LinkAttachmentImage(){}
public LinkAttachmentImage(String link){
this.link = link;
}
}
这是我在api网关中使用的模型
{
"title": "NewStatusRequestBody",
"type": "object",
"properties": {
"status":{
"type": "object",
"properties": {
"profilePicture":{
"type": "object",
"description": "profile picture",
"properties":{
"link":{
"type": "string",
}
}
},
"firstName":{
"type": "string",
"description": ""
},
"lastName":{
"type": "string",
"description":""
},
"handle":{
"type": "string",
"description":""
},
"text":{
"type":"string",
"description":""
},
"timestamp":{
"type":"string"
},
"attachedPicture":{
"type":"object",
"properties":{
"link":{
"type": "string",
}
}
}
}
},
"tags":{
"type":"array",
"items":{
"type":"string"
}
},
"token":{
"type":"string"
}
}
这是我用来测试lambda的代码
{
"status": {
"profilePicture": {
"link": "TEST"
},
"firstName": "firstName",
"lastName": "lastName",
"handle": "@admin",
"timestamp": "date",
"text": "text",
"attachedPicture": {
"link": "TEST"
}
},
"tags": [
"test",
"test#3"
],
"token": "admin"
}
}
在lambda中,我尝试打印请求,但它说到达request.toString()时有一个空指针,但它不会进入if(request == null)条件:
public MessageResult saveNewStatus(NewStatusRequest request,
Context context){
LambdaLogger logger = context.getLogger();
if(request == null){
logger.log(TAG + "request received is null");
return new MessageResult(null, "something went wrong");
}
logger.log(TAG + "request: " + request.toString());
}