我使用Java Spring Cloud/Boot構建了一個REST API服務。首先,我做了一個簡單的類連接到一個MongoDB和一個控制器,該控制器應該允許我添加,刪除,更新和獲取所有對象。當使用POSTMAN這些都可以工作,但是當我想使用redux和fetch API添加或更新一個對象時,我得到一個狀態400和「錯誤的請求」錯誤。這似乎與我在正文中發送的JSON有關,但它與例如POSTMAN一起使用的JSON格式完全相同。Java Spring REST API狀態400對POST/PUT的響應
我在Redux中的操作。爲了簡單/測試的目的,我在頂部添加了一個對象,而不是使用從頁面發送的對象。
var assetObject = {
"vendor" : "why dis no work?",
"name": "wtf",
"version": "231",
"category" : "qsd",
"technology" : "whatever"
}
export function addAsset(access_token, asset) {
return dispatch => {
fetch(constants.SERVER_ADDRESS + '/as/asset/add',
{
method: 'POST',
credentials: 'include',
headers: {
'Authorization': 'Bearer' + access_token,
'Content-Type': 'application/json'
},
body: assetObject
})
.then(res => dispatch({
type: constants.ADD_ASSET,
asset
}))
}
}
控制器代碼的Java春:
@RequestMapping(method = RequestMethod.POST, path = "/add")
public void addAsset(@RequestBody Asset asset) {
assetService.addAsset(asset);
}
狀態OK,在做的在郵遞員:
我使用終極版/提取API時得到的錯誤(我只刪除目錄結構,因爲它有公司名稱):
已經停留了一段時間,任何幫助都非常感謝!
編輯資產對象:
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Document(collection = "assets")
public class Asset {
@Id
private String id;
private String vendor;
private String name;
private String version;
private String category;
private String technology;
public Asset() {
}
public Asset(String id,
String vendor,
String name,
String version,
String category,
String technology) {
this.id = id;
this.vendor = vendor;
this.name = name;
this.version = version;
this.category = category;
this.technology = technology;
}
public String getId() {
return id;
}
public String getVendor() {
return vendor;
}
public String getName() {
return name;
}
public String getVersion() {
return version;
}
public String getCategory() {
return category;
}
public String getTechnology() {
return technology;
}
public void setId(String id) {
this.id = id;
}
public void setVendor(String vendor) {
this.vendor = vendor;
}
public void setName(String name) {
this.name = name;
}
public void setVersion(String version) {
this.version = version;
}
public void setCategory(String category) {
this.category = category;
}
public void setTechnology(String technology) {
this.technology = technology;
}
}
可以複製/粘貼您的資產Java對象? –
添加了代碼。 – Matthias
你錯過了你的json中的ID,因此得到了400.你能嘗試告訴我結果嗎? –