Skip to content
This repository was archived by the owner on May 18, 2026. It is now read-only.

Nexon MapleStory OpenAPI Java Client v1.1.2

Choose a tag to compare

@JinhyeokKo JinhyeokKo released this 13 Sep 20:22
· 13 commits to main since this release
3f0b16c

๐ŸŽ‰ Nexon MapleStory OpenAPI Java Client v1.1.2

โœจ ๋ณ€๊ฒฝ ์‚ฌํ•ญ

ClassName enum

  • ๋‹จ์ผ ํด๋ž˜์Šค ๋ช… ์กฐํšŒ ๊ฐ€๋Šฅํ•˜๋„๋ก ์ˆ˜์ •
  • api์˜ ์กฐํšŒ ํ˜•์‹์ธ '์ „์‚ฌ-ํžˆ์–ด๋กœ' ๋ฅผ ๋‹จ์ผ String์œผ๋กœ ์‚ฌ์šฉํ•  ๋•Œ ๋‹จ์ผ ์ง์—… ๋ช…์„ ์กฐํšŒํ•˜๋Š” ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€

๊ธฐ์กด

HERO("์ „์‚ฌ-ํžˆ์–ด๋กœ")

๋ณ€๊ฒฝ

HERO("์ „์‚ฌ-ํžˆ์–ด๋กœ", "ํžˆ์–ด๋กœ")

์ถ”๊ฐ€

/**
     * api์˜ ์กฐํšŒ ํ˜•์‹์ธ '๋ผ๋ผ-์ „์ฒด ์ „์ง' ๋ฅผ ๋‹จ์ผ String์œผ๋กœ ์‚ฌ์šฉํ•  ๋•Œ ๋‹จ์ผ ์ง์—… ๋ช…์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.
     *
     * @param className ์กฐํšŒํ•  ์ง์—… ๋ช…(enum์˜ className ๊ฐ’)
     * @return classValue ๊ฐ’
     */
    public static String getClassValueByClassName(String className) {
        for (ClassName c : ClassName.values()) {
            if (c.getClassName().equals(className)) {
                return c.getClassValue();
            }
        }
        throw new IllegalArgumentException("ํ•ด๋‹นํ•˜๋Š” ํด๋ž˜์Šค๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค: " + className);
    }

DateValidator.java

  • ๋‚ ์งœ๊ฐ€ null ์ด๊ฑฐ๋‚˜ ์˜ค๋Š˜์ผ ๊ฒฝ์šฐ 8์‹œ 30๋ถ„ ์ด์ „ ์กฐํšŒ ์‹œ ํ•˜๋ฃจ ์ „์˜ ๋žญํ‚น ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜๋„๋ก ๋ณ€๊ฒฝ

์ˆ˜์ •๋œ ๋กœ์ง

        if (date == null || date.equals(today)) {
            LocalTime currentTime = LocalTime.now(KST);
            LocalTime cutoffTime = LocalTime.of(8, 30);

            if(currentTime.isBefore(cutoffTime)) {
                return today.minusDays(1);
            }
            else {
                return today;
            }
        }

๐Ÿš€ ์‹œ์ž‘ํ•˜๊ธฐ

Maven

<dependency>
    <groupId>com.kmstimes</groupId>
    <artifactId>nexon-kms-openapi</artifactId>
    <version>1.1.2</version>
</dependency>

Gradle

implementation 'com.kmstimes:nexon-kms-openapi:1.1.2'

๐Ÿ“‹ ์‚ฌ์šฉ ์˜ˆ์ œ

// API ํด๋ผ์ด์–ธํŠธ ์ดˆ๊ธฐํ™”
MapleStoryApi api = MapleStoryApi.create("your-api-key");

// ์บ๋ฆญํ„ฐ OCID ์กฐํšŒ
String ocid = api.Character().getId("์บ๋ฆญํ„ฐ๋ช…").ocid();

// ์บ๋ฆญํ„ฐ ๊ธฐ๋ณธ ์ •๋ณด ์กฐํšŒ
LocalDate date = LocalDate.now();
BasicResponse basicInfo = api.Character().getCharacterBasic(ocid, date);
System.out.println("์บ๋ฆญํ„ฐ ์ด๋ฆ„: " + basicInfo.character_name());
System.out.println("๋ ˆ๋ฒจ: " + basicInfo.character_level());
System.out.println("์ง์—…: " + basicInfo.character_class());

๐Ÿ“Œ ์ฃผ์˜์‚ฌํ•ญ

  • Open API๋ฅผ ์ด์šฉํ•˜์—ฌ ์ด์šฉ์•ฝ๊ด€์— ๋ช…์‹œ๋˜์–ด ์žˆ๋Š” ์‚ฌํ•ญ ๋‚ด์—์„œ ์ž์œ ๋กญ๊ฒŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œ์ž‘ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค๋งŒ, ์ œ์ž‘ ์‹œ ๋ฐ์ดํ„ฐ๋ฅผ NEXON Open API์—์„œ ์ œ๊ณต ๋ฐ›์•˜์Œ์„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด์— ๋ช…์‹œํ•ด์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์„œ๋น„์Šค ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— 'Data based on NEXON Open API'๋ผ๋Š” ๋ฌธ๊ตฌ๋ฅผ ๋ช…์‹œํ•ด์ฃผ์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๐Ÿ”— ์œ ์šฉํ•œ ๋งํฌ

๐Ÿ“„ ๋ผ์ด์„ ์Šค

์ด ํ”„๋กœ์ ํŠธ๋Š” MIT ๋ผ์ด์„ ์Šค ํ•˜์— ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

์ด ๋ฆด๋ฆฌ์ฆˆ๋Š” Java 17 ์ด์ƒ์„ ์ง€์›ํ•˜๋ฉฐ, Retrofit2 ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ํ”ผ๋“œ๋ฐฑ๊ณผ ๊ธฐ์—ฌ๋ฅผ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!