Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvSpApPid 245 of 322 menu
◀ ▶

Идентификатор в пути в Java

Шаблон "/posts/{id}" означает, что число в конце адреса выбирает запись. Строку URI собирают заранее, подставляя нужный идентификатор в литерал или через конкатенацию.

Пусть требуется пост с номером 3. После чтения тела достаточно модели с id и title:

import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.databind.ObjectMapper; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; @JsonIgnoreProperties(ignoreUnknown = true) public record ApiPost(int id, String title) {} public class Main { public static void main(String[] args) throws Exception { int postId = 3; ObjectMapper mapper = new ObjectMapper(); HttpClient client = HttpClient.newBuilder().build(); String address = "https://jsonplaceholder.typicode.com/posts/" + postId; HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(address)) .GET() .build(); HttpResponse<String> response = client.send( request, HttpResponse.BodyHandlers.ofString(), ); ApiPost post = mapper.readValue( response.body(), ApiPost.class, ); System.out.println(post.id()); System.out.println(post.title()); } }

Тот же прием работает для пользователей: меняется только базовый сегмент и тип модели. Число 2 в пути дает вторую учебную запись:

import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.databind.ObjectMapper; import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; @JsonIgnoreProperties(ignoreUnknown = true) public record ApiUser(int id, String name) {} public class Main { public static void main(String[] args) throws Exception { int userId = 2; ObjectMapper mapper = new ObjectMapper(); HttpClient client = HttpClient.newBuilder().build(); String address = "https://jsonplaceholder.typicode.com/users/" + userId; HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(address)) .GET() .build(); HttpResponse<String> response = client.send( request, HttpResponse.BodyHandlers.ofString(), ); ApiUser user = mapper.readValue( response.body(), ApiUser.class, ); System.out.println(user.name()); } }
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить