19. Creating a new resource using POST


Tworzenie nowego zasobu za pomocą metody POST.

Na początku w kontrolerze stosujemy metodę POST. Dodajemy też adnotację “@RequestBody” w celu pobrania argumentu klasy “Topic” z żądania HTTP.

@RequestMapping(method = RequestMethod.POST, value = "/topics")
	public void addTopic(@RequestBody Topic topic) {
		topicService.addTopic(topic);
	}

 

Trzeba jeszcze dodać nową metodę w klasie serwisowej:

public void addTopic(Topic topic) {
		topics.add(topic);
	}

 

I możemy za pomocą programu Postman testować wywołania HTTP.
Ustawiamy metodę POST przy adresie. W ciele wstawiamy surowy JSON. W nagłówkach -> w Content-Type zaznaczamy application/json.
Zanim jeszcze jednak wywołamy żądanie musimy dokonać małej zmiany w postaci listy, która jest w klasie serwisowej, gdyż w obecnej postaci nie jest ona zmienna. I tak:

private List<Topic> topics = new ArrayList<>(
			Arrays.asList(new Topic("spring", "spring framework", "spring framework description"),
					new Topic("java", "java framework", "java framework description"),
					new Topic("javascript", "javascript framework", "javascript framework description")));

Po zapisaniu zmian możemy wysłać żądanie w Postmanie.