번역기 API를 사용하기 위해 Papago open API를 사용하려고 했으나.... 서비스 지원이 종료됬다고 하네요.....우우우우우~
그래서 ! Azure를 통한 번역기 API를 사용해보았습니다 !
Azure 가입 및 구독
API를 사용하려면 Azure에 가입한 후 구독을 진행해줘야합니다 ! 12개월은 무료로 사용할 수 있다고합니다 !
위 링크를 통해서 회원가입을 진행한 뒤 메인 페이지 배너에 있는 Azure 무료 체험하기를 클릭하면 해당 서비스를 이용하실 수 있습니다 !
번역기(Translator) 리소스 생성 및 키, 엔드포인트 확인하기
다음으로 번역기(Translator) 리소스를 생성해 줘야합니다. 검색창에 번역가 또는 Translator를 검색한 뒤 만들기 버튼을 통해 리소스를 생성해줍니다 ! (가격은 Free로) 추가로 구독 후 바로 생성할 경우 오류가 발생할 수 있습니다. 403 오류가 발생할 경우 5-10분 뒤 다시 시도해보세요 !
해당 API를 사용하려면 고유 키와 엔드포인트가 있어야합니다. 생성한 리소스로 접속하여 아래와 같은 경로로 확인 가능합니다 !
API 사용 시 Response 데이터를 받기 위해 위치/지역(location)의 값이 필요하니 해당 값도 메모해 놓으세요 :)
사용하기
해당 예제는 SpringBoot 프레임워크와 Gradle을 사용하고 있는 점 참고해주세요.
Java가 아닌 다른 언어를 사용 중이시라면 이 링크를 통해 공식문서 확인이 가능합니다.
build.gradle 파일에 두 dependencie를 주입해줍니다 !
dependencies {
implementation("com.squareup.okhttp3:okhttp:4.10.0")
implementation("com.google.code.gson:gson:2.9.0")
}
하단의 이미지는 공식 문서에 예시 코드입니다.
저의 경우 utils 폴더에 해당 클래스를 생성하여 아래와 같이 커스텀하였습니다.
package com.project.thejapenproject.utils;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
import okhttp3.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.io.IOException;
@Component
public class Translator {
@Value("${translator.key}")
private String key;
@Value("${translator.endpoint}")
public String endpoint;
@Value("${translator.location}")
public String location;
public String url;
OkHttpClient client = new OkHttpClient();
public String Post(String word, String from, String to) throws IOException {
String route = "/translate?api-version=3.0&from=" + from + "&to=" + to;
url = endpoint.concat(route);
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType,
"[{\"Text\": \"" + word +"\"}]");
Request request = new Request.Builder()
.url(url)
.post(body)
.addHeader("Ocp-Apim-Subscription-Key", key)
.addHeader("Ocp-Apim-Subscription-Region", location)
.addHeader("Content-type", "application/json")
.build();
Response response = client.newCall(request).execute();
return response.body().string();
}
public String prettify(String json_text) {
JsonParser parser = new JsonParser();
JsonElement json = parser.parse(json_text);
Gson gson = new GsonBuilder().setPrettyPrinting().create();
return gson.toJson(json);
}
}
Post메서드의 경우 Post 요청을 하는 메서드이며, prettify의 경우 Post메서드에서 반환되는 데이터를 확인하기 쉽게 가공해주는 메서드입니다 :) 나라별 약어의 경우 영어는 en, 한국어는 ko, 일본어는 ja, 이탈리아어는 it 등이 있습니다.
마지막으로 포스트맨으로 데이터 확인까지 하면 끝 !
'프로그래밍 > Java' 카테고리의 다른 글
[Java, 자바] JVM의 동작원리와 기본개념 (0) | 2024.06.18 |
---|---|
[Spring, Spring Boot] @Value가 null일 때의 원인과 해결 방법 (0) | 2024.06.17 |
[Java, 자바] 추상 클래스(Abstract Class)와 인터페이스(Interface)는 언제 사용해야 될까? (0) | 2024.05.31 |
[Spring, SpringBoot] Controller에서 데이터 받는 방법 (@RequestBody, @RequestParam, @ParthVariable) (0) | 2024.05.27 |
[Spring, Spring Boot] NoClassDefFoundError javax/xml/bind/DatatypeConverter (0) | 2024.04.17 |
개발의 모든 것 !
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!