Rest-Assured가 무엇인가?
RestAssured는 REST API를 테스트하기 위한 Java DSL(Domain-specific language)이에요.
get, post, put, delete, patch 등 여러 요청과 응답을 검증하는데 사용해요.
OpenAI Thread 생성 예제
open ai api에서 gpt를 사용하려면 각 대화창 즉 스레드가 필요해요.
참고 - https://platform.openai.com/docs/assistants/overview
open ai의 api key가 발급되었다는 가정하에 예제를 풀어볼게요.
1. 의존성 설정
스프링부트 3.2.x version 기준
testImplementation 'io.rest-assured:rest-assured:5.4.0'
2. 테스트 코드 작성
@Test
void requestOpenAiCreateThread() throws JsonProcessingException {
RestAssured.baseURI = "https://api.openai.com/v1/threads";
HttpHeaders headers = RestUtils.createHeaders();
String apiKey = "님들 open ai api key";
given().
header("Content-Type", headers.getContentType().toString()).
header("Authorization", "Bearer " + apiKey).
header("OpenAI-Beta", headers.getFirst("OpenAI-Beta")).
when().
post().
then().
statusCode(200).
body("object", equalTo("thread"));
}
given(), when(), then() 형식으로 검증이 편리하다.
대략적인 코드 설명으로, openai의 스레드 생성 url을 baseURI로 설정한다.
open ai thread 생성 - https://platform.openai.com/docs/api-reference/threads/createThread
위의 공식문서에서 알려준대로 헤더의 정보를 설정하고, post 요청을 보내주어서 응답 response body에 object의 값이
thread면 성공한다는 코드다. 스레드 id는 난수로 생성되기에 응답이 잘 오는지 object가 thread인지 확인하여 성공여부를 확인한다.
공식문서 보고 헤더 설정하기 귀찮으신 분들은 아래 코드 사용하세요!
public class RestUtils {
// 중복되는 헤더 생성
public static HttpHeaders createHeaders() {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("OpenAI-Beta", "assistants=v1");
return headers;
}
}
간단하게 Rest Assured 사용법을 알아봤습니당