ตัวอย่างด้านล่างแสดงการใช้งาน API ผ่าน Java สองรูปแบบ:
เริ่มต้นด้วยการขอรับ refresh-token และ access-token โดยใช้
username และ password ที่ลงทะเบียนแล้ว
Java: ด้านล่างเป็นตัวอย่าง Java code โดยใช้ HttpClient (Java 11+) เพื่อขอรับ token จาก API
Spring Boot: ตัวอย่าง Spring Boot Controller ที่รับ username, password จาก request และขอ token จาก API
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.nio.charset.StandardCharsets;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.Map;
public class GetTokens {
public static void main(String[] args) throws Exception {
String username = "your_username";
String password = "your_password";
var client = HttpClient.newHttpClient();
var objectMapper = new ObjectMapper();
var data = Map.of("username", username, "password", password);
var request = HttpRequest.newBuilder()
.uri(URI.create("https://hcode.moph.go.th/api/token/"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(objectMapper.writeValueAsString(data), StandardCharsets.UTF_8))
.build();
var response = client.send(request, HttpResponse.BodyHandlers.ofString());
Map tokens = objectMapper.readValue(response.body(), Map.class);
String refreshToken = tokens.get("refresh");
String accessToken = tokens.get("access");
System.out.println("Refresh Token: " + refreshToken);
System.out.println("Access Token: " + accessToken);
}
}
import org.springframework.web.bind.annotation.*;
import org.springframework.http.ResponseEntity;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.web.client.RestTemplate;
import java.util.Map;
@RestController
public class TokenController {
@PostMapping("/get-tokens")
public ResponseEntity> getTokens(@RequestParam(defaultValue="your_username") String username,
@RequestParam(defaultValue="your_password") String password) {
String url = "https://hcode.moph.go.th/api/token/";
var data = Map.of("username", username, "password", password);
RestTemplate restTemplate = new RestTemplate();
ResponseEntity
รันโค้ดหรือเรียก endpoint ข้างต้นเพื่อรับ token
Java: ด้านล่างเป็นตัวอย่างการใช้ refresh-token เพื่อขอ access-token ใหม่
Spring Boot: ใน Spring Boot ท่านสามารถสร้าง Controller สำหรับ refresh token เช่นกัน
import java.net.http.*;
import java.net.URI;
import java.nio.charset.StandardCharsets;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.Map;
public class RefreshAccess {
public static void main(String[] args) throws Exception {
String refreshToken = "your_refresh_token_here";
var client = HttpClient.newHttpClient();
var objectMapper = new ObjectMapper();
var data = Map.of("refresh", refreshToken);
var request = HttpRequest.newBuilder()
.uri(URI.create("https://hcode.moph.go.th/api/token/refresh/"))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(objectMapper.writeValueAsString(data), StandardCharsets.UTF_8))
.build();
var response = client.send(request, HttpResponse.BodyHandlers.ofString());
Map result = objectMapper.readValue(response.body(), Map.class);
String newAccessToken = result.get("access");
System.out.println("New Access Token: " + newAccessToken);
}
}
import org.springframework.web.bind.annotation.*;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;
import java.util.Map;
@RestController
public class RefreshController {
@PostMapping("/refresh-token")
public ResponseEntity> refreshAccessToken(@RequestParam(defaultValue="your_refresh_token_here") String refresh) {
String url = "https://hcode.moph.go.th/api/token/refresh/";
var data = Map.of("refresh", refresh);
RestTemplate restTemplate = new RestTemplate();
ResponseEntity