이전 시간에는 GET, POST 요청 관련된 코드를 작성해 보았습니다.
이번 시간에는 프로젝트의 메인인 maple stroy open api관련 내용에 대해 다뤄보고자 합니다.
open api 확인
가장 먼저 https://openapi.nexon.com/ 해당 사이트로 이동합니다.
게임 중 메이플스토리를 선택합니다.
그러면 다음과 같이 각종 open api 종류들을 확인해 볼 수 있습니다.
해당 open api를 활용하기 위해서는 API Key가 필요합니다.
api key 발급
마이페이지의 애플리케이션 등록을 선택합니다.
이후 다음과 같이 사용한 open api의 게임, 개발 단계, 출시할 서비스 명을 작성하신 후 등록을 누르시면 API키가 발급되고, 내 애플리케이션에서 확인해 볼 수 있습니다.
이후, 게임 - 메이플스토리 란에 들어가면 api key가 적용되어 사이트내에서 각종 open api를 테스트해볼 수 있습니다.
open api 활용 방식
모든 open api는 GET요청으로 이루어져 있고, header에 API_KEY를 넣고, url에 필요한 request 내용을 추가하여 전달하면 됩니다.
header에 다음과 같은 형식으로 요청을 하면 됩니다. 해당 header는 모든 api를 활용하는데 필수로 추가되어야 합니다.
x-nxopen-api-key={API_KEY}
캐릭터 정보 조회 open api를 활용하기 위해서는 가장 먼저 캐릭터 식별자가 필요합니다.
캐릭터 식별자는 가장 상단에 있는 "캐릭터 식별자(ocid) 조회"를 통해 확인할 수 있습니다.
식별자 조회에 character_name으로 캐릭터 이름을 작성하여 보내게 되면 다음과 같이 ocid가 String 타입으로 반환됩니다.
{
"ocid": "{ocid}"
}
이후 "기본 정보 조회"에서 해당 ocid를 활용하여 사용할 수 있습니다.
header에 API_KEY를 전달해 주고, 캐릭터 식별자(ocid), date를 url에 request로 넣어주고 GET 요청을 보내면, 다음과 같은 형식으로 값을 반환받습니다.
{
"date": "2023-12-21T00:00+09:00",
"character_name": "string",
"world_name": "string",
"character_gender": "string",
"character_class": "string",
"character_class_level": "string",
"character_level": 0,
"character_exp": 0,
"character_exp_rate": "string",
"character_guild_name": "string",
"character_image": "string",
"character_date_create": "2023-12-21T00:00+09:00",
"access_flag": "string",
"liberation_quest_clear_flag": "string"
}
해당 api에서 주의할 점은, "조회 기준일 (KST, YYYY-MM-DD)"은 현재 날짜의 전날까지만 입력이 가능합니다.
추가로, "character_image" 값은 String 형식으로 들어오는데, 받은 String 값을 웹사이트 주소로 입력하면 이미지를 확인할 수 있습니다.
해당 내용은 frontend에서 캐릭터의 이미지를 불러오는데 사용하시면 될 거 같습니다.
다음 포스팅에서는 이번에 받은 API_KEY를 가지고, 캐릭터의 기본 정보를 불러오는 부분에 대해 다뤄보도록 하겠습니다.
'Rust > 프로젝트' 카테고리의 다른 글
Rust로 백엔드 개발기(feat. 메이플스토리) - 06 프로젝트 분리 (0) | 2025.03.26 |
---|---|
Rust로 백엔드 개발기(feat. 메이플스토리) - 05 전역변수 (0) | 2025.03.23 |
Rust로 백엔드 개발기(feat. 메이플스토리) - 04 캐릭터 정보 조회 (0) | 2025.03.13 |
Rust로 백엔드 개발기(feat. 메이플스토리) - 02 GET, POST, JSON 통신 (0) | 2025.03.09 |
Rust로 백엔드 개발기(feat. 메이플스토리) - 01 시작 (0) | 2025.03.05 |
댓글