Я разрабатываю простой REST-сервис с использованием Spring.У меня есть сущность и контролер для этого.Моя проблема в том, что я не могу использовать функцию Post из браузера, она работает только из терминала.Функция Get отлично работает из браузера и терминала, но функция Post работает только из терминала, но я должен, чтобы она работала из браузера.
Для приведенного ниже кода, если я перейду к:
http://localhost:8080/cities
результат в порядке, все записи возвращены.
Метод получения:
@RestController
public class CityController {
...
@GetMapping(value = "/cities", produces = "application/json; charset=UTF-8")
List<City> all() {
return repository.findAll();
}
}
Для метода Post, просто работает с терминала, если я напишу что-то вроде:
curl -X POST localhost: 8080 / towns -H 'Тип содержимого: application / json' -d'{"name": "test", "state": "test"}'
Результат в порядке, запись создана.
Но из браузера, если я пытаюсьдобавьте новую запись с:
http://localhost:8080/cities?name=test&state=test
ничего не происходит, и не возникает ошибка.
Метод отправки:
@PostMapping(path = "/cities", consumes = "application/json", produces = "application/json")
City newCity(@RequestBody City city) {
return repository.save(city);
}
Объект:
@Entity
public class City {
@Id @GeneratedValue(strategy=GenerationType.AUTO) Long id;
private String name;
private String state;
public City() {
}
public City(String name, String state) {
this.name = name;
this.state = state;
}
public void setId(Long id) {
this.id = id;
}
public Long getId() {
return id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}