본문 바로가기

API5

Embabel을 사용하여 AI Agent API로 제공하기 개요이전 포스팅(https://blog.igooo.org/186)에서 Embable을 사용하여 AI Agent를 개발하는 방법에 대하여 알아보았다. 빠르게 Embabel을 알아보기 위해서 Spring Shell을 사용한 간단한 CLI 형태로 예제를 작성했는데 이번에는 AI Agent를 여러 사람에게 쉽게 제공하기 위해서는 API 형태로 제공을 해야 하기 때문에 API로 AI Agent를 제공하는 방법에 대해서 알아보자.Spring Web을 사용하여 API를 제공하고 AI Agent와 연동하는 방법에 대하여 알아본다. Getting Started준비사항이전 포스팅(https://blog.igooo.org/186)을 작성했을 당시 Emababel 버전이 0.1 이었고 현재 작성일(2025-12) 기준으로는 .. 2025. 12. 11.
Spring - Path Prefix 개요Spring을 사용하여 API를 개발할 때 여러 개의 Controller를 생성하고, @RequestMapping을 사용하여 각 Controller에 공통된 Prefix Path를(ex /api/v1.0/, ...) 설정하는 방법으로 API의 URL을 정의해 왔다. 이번 포스트에서는 Spring의 WebMvcConfigurer를 사용하여 원하는 Controller에 Path Prefix를 설정하는 방법을 알아본다. As-isWebMvcConfigurer를 사용하는 방법을 알아보기 전에 기존 프로젝트의 코드에서는 대부분 아래와 같이 개발하는 경우가 많았다.Controller에 @RequestMapping을 사용하여 상수로 정의한 API_PREFIX를 path 문자열 앞에 추가하여 API URL을 정의한.. 2025. 8. 18.
Spring Framework 7.0.0 API Versioning 개요이번 포스팅에는 Spring Framework 7.0.0에 포함될 API Versioning 기능에 대해서 알아보자.Restful API로 클라이언트와 통신하는 서비스에서는 URI에 버전을 포함하여(ex /service/v1.0/users) API를 작성하고, API가 변경됨에 따라 API의 버전을 추가하거나 변경하는 전략을 사용해 왔다. Spring Framework 7.0.0에는 기존에 URI를 설정하던 @RequestMapping 어노테이션에 version 어트리뷰트를 추가하여 API Version을 관리하는 기능을 제공한다. API Versioning을 사용하는 이유하위 호환성 유지 (Backward Compatibility)점진적 마이그레이션 (Gradual Migration)API 진화 관.. 2025. 7. 31.
[Kotlin] REST Assured로 통합 테스트 작성하기 개요Java 프로젝트에서 자주 사용하던 REST Assured(https://rest-assured.io/)를 사용하여 Kotlin 프로젝트에서요 실제 API를 호출하는 Integraion Test를 작성한다 Java REST Assured 참고 : https://blog.igooo.org/119  Why Kotlin?Java Java로 Junit 테스트를 작성하는 경우 여러 줄의 검증 코드가 있을 때 특정줄의 검증 코드에서 오류가 발생하면 아래 검증 코드는 실행되지 않고 사용자에게 오류 라인수를 리포팅해 준다.......then(). statusCode(200). body("size", is(3)). body("name.any { it == 'Ervin Howell' }", is(tru.. 2024. 9. 25.
REST Assured로 API 테스트하기 개요REST Assured는 Java 언어에서 Ruby, Groovy와 같은 동적 언어처럼 Rest 서비스를 테스트하고 검증하는 것은 쉽게 사용할 수 있게 해준다. 특징Given When Then 패턴으로 가독성 높은 테스트를 작성한다.Json, XML, Plain Test 응답값 검증이 쉽다.Spring, Kotlin. Scala Support Example{ "lotto": { "lottoId":5, "winning-numbers": [2,45,34,23, 7,5,3], "winners": [ { "winnerId": 23, "numbers": [2,45,34, 23, 3, 5] }, { "winnerId": 54, "numbers": [52,3,12,11, 18.. 2024. 6. 3.
728x90