npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

neople-openapi-types

v1.0.0

Published

TypeScript definitions for Neople Open API

Readme

neople-openapi-types

네오플 Open API를 위한 포괄적인 TypeScript 타입 정의 라이브러리입니다.

목차

설치

npm install -D neople-openapi-types

지원 게임

  • 던전앤파이터 (Dungeon Fighter Online) - 34개 API 엔드포인트
  • 사이퍼즈 (Cyphers) - 11개 API 엔드포인트

기본 사용법

타입 import 방법

import type { 
  // 공통 타입
  ApiResponse, 
  HttpStatusCode, 
  NeopleApiException,
  
  // 던전앤파이터
  DungeonFighter,
  
  // 사이퍼즈
  Cyphers 
} from 'neople-openapi-types';

상세 사용 예시

사이퍼즈 API

플레이어 검색

import type { 
  PlayerSearchParams, 
  PlayerSearchResponse 
} from 'neople-openapi-types';

// 플레이어 검색 파라미터 타입 정의
const searchParams: PlayerSearchParams = {
  nickname: '플레이어명',
  wordType: 'match',
  limit: 50
};

// 응답 타입 정의 (axios, fetch 등 원하는 HTTP 클라이언트 사용)
const response = await fetch(
  `/cy/players?nickname=${searchParams.nickname}&limit=${searchParams.limit}`,
  { headers: { 'apikey': process.env.NEOPLE_OPENAPI_CYPHERS_KEY } }
);
const results: PlayerSearchResponse = await response.json();

API 클라이언트 인터페이스 활용하기

import type { 
  CyphersApiClient,
  CyphersApiConfig,
  PlayerSearchParams 
} from 'neople-openapi-types';

// API 클라이언트 설정
const config: CyphersApiConfig = {
  apiKey: process.env.NEOPLE_OPENAPI_CYPHERS_KEY!,
  baseURL: 'https://api.neople.co.kr',
  timeout: 10000
};

// 클라이언트 구현체를 만들어서 사용
class MyCyphersApiClient implements CyphersApiClient {
  constructor(private config: CyphersApiConfig) {}
  
  async searchPlayers(params: PlayerSearchParams) {
    // 실제 API 호출 로직 구현
    // ...
  }
  // 다른 메서드들도 구현
}

const client = new MyCyphersApiClient(config);
const results = await client.searchPlayers({ nickname: '플레이어명' });

던전앤파이터 API 사용 예시

import { 
  CharacterSearchParams,
  CharacterEquipmentParams,
  DFServer 
} from 'neople-openapi-types';

// 캐릭터 검색 파라미터
const searchParams: CharacterSearchParams = {
  serverId: 'anton',
  characterName: '캐릭터명',
  wordType: 'match',
  limit: 10
};

// 캐릭터 장비 조회 파라미터
const equipParams: CharacterEquipmentParams = {
  serverId: 'anton',
  characterId: 'characterId123'
};

// 실제 API 호출 (fetch, axios 등 사용)
const searchUrl = `/df/servers/${searchParams.serverId}/characters?characterName=${searchParams.characterName}`;
const equipUrl = `/df/servers/${equipParams.serverId}/characters/${equipParams.characterId}/equip/equipment`;

에러 처리

import axios from 'axios';
import type { 
  PlayerInfoParams,
  PlayerInfo,
  NeopleApiException
} from 'neople-openapi-types';
import { 
  isApiKeyError,
  isRateLimitError,
  isMaintenanceError 
} from 'neople-openapi-types';

// 사용자가 직접 구현한 API 호출 함수
async function getPlayerInfo(params: PlayerInfoParams): Promise<PlayerInfo> {
  try {
    const response = await axios.get(`/cy/players/${params.playerId}`, {
      headers: {
        'apikey': process.env.NEOPLE_OPENAPI_CYPHERS_KEY
      },
      baseURL: 'https://api.neople.co.kr'
    });
    return response.data;
  } catch (error) {
    // axios 에러를 NeopleApiException으로 변환
    if (axios.isAxiosError(error)) {
      const status = error.response?.status || 500;
      const code = error.response?.data?.error?.code || 'SYSTEM_ERROR';
      const message = error.response?.data?.error?.message || error.message;
      throw new NeopleApiException(message, status, code);
    }
    throw error;
  }
}

// 에러 처리 예시
try {
  const playerInfo = await getPlayerInfo({ playerId: 'player123' });
  console.log(playerInfo);
} catch (error) {
  if (isApiKeyError(error)) {
    console.log('API 키를 확인해주세요');
  } else if (isRateLimitError(error)) {
    console.log('요청 한도를 초과했습니다');
  } else if (isMaintenanceError(error)) {
    console.log('현재 점검 중입니다');
  } else {
    console.log('알 수 없는 오류:', error.message);
  }
}

API 엔드포인트 참조

모든 타입 정의에는 실제 API 엔드포인트가 JSDoc으로 문서화되어 있습니다:

사이퍼즈 API

플레이어 & 매치

  • 플레이어 검색 GET /cy/players
    PlayerSearchParamsPlayerSearchResponse
  • 플레이어 정보 GET /cy/players/{playerId}
    PlayerInfoParamsPlayerInfo
  • 매치 기록 GET /cy/players/{playerId}/matches
    PlayerMatchesParamsPlayerMatches
  • 매치 상세 GET /cy/matches/{matchId}
    MatchDetailParamsMatchDetail

랭킹

  • 전체 랭킹 GET /cy/ranking/ratingpoint
    OverallRankingParamsRankingInfo
  • 캐릭터별 랭킹 GET /cy/ranking/characters/{characterId}/{rankingType}
    CharacterRankingParamsRankingInfo
  • 투신전 랭킹 GET /cy/ranking/tsj/{tsjType}
    TSJRankingParamsTSJRankingResponse

아이템 & 사이퍼

  • 아이템 검색 GET /cy/battleitems
    ItemSearchParamsItemSearchResponse
  • 아이템 상세 GET /cy/battleitems/{itemId}
    ItemDetailParamsItemDetailResponse
  • 다중 아이템 GET /cy/multi/battleitems
    MultiItemParamsMultiItemResponse
  • 사이퍼 정보 GET /cy/characters
    CypherInfoParamsCypherInfoResponse

던전앤파이터 API

서버 & 캐릭터 기본

  • 서버 목록 GET /df/servers
    ServerListResponse
  • 캐릭터 검색 GET /df/servers/{serverId}/characters
    CharacterSearchParamsCharacterSearchResponse
  • 캐릭터 기본정보 GET /df/servers/{serverId}/characters/{characterId}
    CharacterBasicParamsCharacterBasicResponse
  • 캐릭터 타임라인 GET /df/servers/{serverId}/characters/{characterId}/timeline
    CharacterTimelineParamsCharacterTimelineResponse
  • 캐릭터 능력치 GET /df/servers/{serverId}/characters/{characterId}/status
    CharacterStatusParamsCharacterStatusResponse
  • 캐릭터 명성 검색 GET /df/servers/{serverId}/characters-fame
    CharacterFameSearchParamsCharacterFameSearchResponse

캐릭터 장비

  • 캐릭터 장비 GET /df/servers/{serverId}/characters/{characterId}/equip/equipment
    CharacterEquipmentParamsCharacterEquipmentResponse
  • 캐릭터 아바타 GET /df/servers/{serverId}/characters/{characterId}/equip/avatar
    CharacterAvatarParamsCharacterAvatarResponse
  • 캐릭터 크리처 GET /df/servers/{serverId}/characters/{characterId}/equip/creature
    CharacterCreatureParamsCharacterCreatureResponse
  • 캐릭터 휘장 GET /df/servers/{serverId}/characters/{characterId}/equip/flag
    CharacterFlagParamsCharacterFlagResponse

캐릭터 스킬 & 버프

  • 캐릭터 스킬 스타일 GET /df/servers/{serverId}/characters/{characterId}/skill/style
    CharacterSkillStyleParamsCharacterSkillStyleResponse
  • 캐릭터 버프 장비 GET /df/servers/{serverId}/characters/{characterId}/skill/buff/equip/equipment
    CharacterBuffEquipmentParamsCharacterBuffEquipmentResponse
  • 캐릭터 버프 아바타 GET /df/servers/{serverId}/characters/{characterId}/skill/buff/equip/avatar
    CharacterBuffAvatarParamsCharacterBuffAvatarResponse
  • 캐릭터 버프 크리처 GET /df/servers/{serverId}/characters/{characterId}/skill/buff/equip/creature
    CharacterBuffCreatureParamsCharacterBuffCreatureResponse

경매장

  • 경매장 검색 GET /df/auction
    AuctionSearchParamsAuctionSearchResponse
  • 경매장 상세 GET /df/auction/{auctionNo}
    AuctionDetailParamsAuctionDetailResponse
  • 경매장 판매내역 GET /df/auction-sold
    AuctionSoldParamsAuctionSoldResponse

아바타 마켓

  • 아바타 마켓 판매상품 GET /df/avatar-market/sale
    AvatarMarketSaleParamsAvatarMarketSaleResponse
  • 아바타 마켓 상품상세 GET /df/avatar-market/sale/{goodsNo}
    AvatarMarketSaleDetailParamsAvatarMarketSaleDetailResponse
  • 아바타 마켓 판매내역 GET /df/avatar-market/sold
    AvatarMarketSoldParamsAvatarMarketSoldResponse
  • 아바타 마켓 판매완료상품 GET /df/avatar-market/sold/{goodsNo}
    AvatarMarketSoldDetailParamsAvatarMarketSoldDetailResponse
  • 아바타 마켓 해시태그 GET /df/avatar-market/hashtag
    AvatarMarketHashtagParamsAvatarMarketHashtagResponse

아이템

  • 아이템 검색 GET /df/items
    ItemSearchParamsItemSearchResponse
  • 아이템 상세 GET /df/items/{itemId}
    ItemDetailParamsItemDetailResponse
  • 아이템 상점정보 GET /df/items/{itemId}/shop
    ItemShopParamsItemShopResponse
  • 다중 아이템 GET /df/multi/items
    MultiItemParamsMultiItemInfoResponse
  • 아이템 해시태그 GET /df/item-hashtag
    ItemHashtagParamsItemHashtagResponse

세트 아이템

  • 세트아이템 검색 GET /df/setitems
    SetItemSearchParamsSetItemSearchResponse
  • 세트아이템 상세 GET /df/setitems/{setItemId}
    SetItemParamsSetItemInfoResponse
  • 다중 세트아이템 GET /df/multi/setitems
    MultiSetItemParamsMultiSetItemResponse

직업 & 스킬

  • 직업 목록 GET /df/jobs
    JobListResponse
  • 직업별 스킬목록 GET /df/skills/{jobId}
    JobSkillListParamsJobSkillListResponse
  • 스킬 상세 GET /df/skills/{jobId}/{skillId}
    SkillDetailParamsSkillDetailResponse
  • 다중 스킬 GET /df/multi/skills/{jobId}
    MultiSkillParamsMultiSkillResponse

API 커버리지 상태

완료된 구현

  • 던전앤파이터: 34/34 엔드포인트 (100%) - 파라미터 + 응답 타입 완료
  • 사이퍼즈: 11/11 엔드포인트 (100%) - 파라미터 + 응답 타입 완료
  • 총 45개 API 엔드포인트 지원

주요 타입

공통 타입

API 응답 및 요청

  • ApiResponse<T> - 모든 네오플 API의 표준 응답 구조

    interface ApiResponse<T> {
      rows: T[];
      next?: string;
      totalCount?: number;
    }
  • ApiRequestOptions - API 요청 시 공통 옵션 (페이지네이션 포함)

  • PaginationParams - 페이지네이션을 위한 파라미터 (limit, offset)

날짜 및 시간

  • DateString - 날짜 문자열 (YYYY-MM-DD 형식)
  • DateTimeString - 날짜시간 문자열 (ISO 8601 형식)

에러 처리

  • ApiError - API 에러 응답의 기본 구조
  • NeopleApiError - 네오플 API 에러 인터페이스
  • NeopleApiException - 네오플 API 전용 예외 클래스
  • HttpStatusCode - HTTP 상태 코드 열거형 (200, 400, 401, 403, 404, 500 등)

유틸리티 타입

  • RequireField<T, K> - 선택적 필드를 필수로 만드는 유틸리티 타입
  • SelectFields<T, K> - 특정 필드만 선택하는 유틸리티 타입

서버 및 게임 환경

던전앤파이터 서버

  • DFServer - 던파의 8개 서버 식별자
    • 'anton', 'bakal', 'cain', 'casillas', 'diregie', 'hilder', 'prey', 'siroco'
  • DF_SERVERS - 서버 코드와 한글명 매핑 상수

사이퍼즈 게임 모드

  • CyphersGameType - 사이퍼즈 게임 타입 구분
    • 'rating': 공식 랭킹전
    • 'normal': 일반 게임
  • CYPHERS_GAME_TYPES - 게임 타입과 한글명 매핑 상수

게임별 전용 타입

던전앤파이터 전용

  • DFItemRarity - 던파 아이템 희귀도 (common, uncommon, rare, unique, epic, chronicle, legendary, myth)
  • DF_ITEM_RARITIES - 아이템 희귀도와 한글명 매핑 상수
    import { DungeonFighter } from 'neople-openapi-types';
    const rarity: DungeonFighter.DFItemRarity = 'epic';

사이퍼즈 전용

  • CyphersItemRarity - 사이퍼즈 아이템 등급 ('101', '102', '103', '104')
  • CYPHERS_ITEM_RARITIES - 아이템 등급과 한글명 매핑 상수
  • CyphersTier - 사이퍼즈 랭킹 티어 (BRONZE, SILVER, GOLD, DIAMOND, JOKER, ACE)
  • CYPHERS_TIERS - 랭킹 티어와 한글명 매핑 상수
    import { Cyphers } from 'neople-openapi-types';
    const tier: Cyphers.CyphersTier = 'ACE';
    const rarity: Cyphers.CyphersItemRarity = '104';

에러 코드 시스템

네오플 API는 체계적인 에러 코드를 제공합니다:

공통 에러 코드

  • CommonApiErrorCode - 모든 API 공통 에러 (API000~API999)
    • 인증 오류, 요청 제한, 서버 오류 등

게임별 전용 에러

  • DnfErrorCode - 던전앤파이터 전용 (DNF000~DNF999)
  • CyphersErrorCode - 사이퍼즈 전용 (CY001~CY999)

통합 타입

  • ApiErrorCode - 모든 에러 코드를 통합한 유니온 타입

에러 메시지 및 상수

  • HTTP_STATUS_TO_ERROR - HTTP 상태 코드별 에러 메시지 매핑
  • ERROR_MESSAGES - 에러 코드별 상세 메시지 매핑

던전앤파이터 (DungeonFighter) 타입

캐릭터 시스템

던전앤파이터의 캐릭터 관련 정보를 다루는 타입들입니다:

  • CharacterSearch - 캐릭터 검색 결과 (캐릭터명으로 검색)
  • CharacterBasic - 캐릭터 기본 정보 (레벨, 직업, 길드 등)
  • CharacterStatus - 캐릭터 능력치 및 스탯 정보
  • CharacterStat - 개별 능력치 정보 (힘, 지능, 체력 등)
  • CharacterEquipment - 착용 중인 장비 정보 및 인챈트/증폭
  • EquipmentItem - 개별 장비 아이템 정보
  • EnchantStat - 인챈트 능력치 정보
  • CharacterAvatar - 아바타 장착 정보 (상의, 하의, 모자 등)
  • AvatarItem - 개별 아바타 아이템 정보
  • CharacterCreature - 크리처 및 아티팩트 정보
  • CreatureInfo - 크리처 상세 정보
  • ArtifactInfo - 아티팩트 상세 정보
  • CharacterFlag - 휘장 시스템 관련 정보
  • FlagInfo - 휘장 상세 정보
  • GemInfo - 보석 정보
  • CharacterTalisman - 탈리스만(부적) 및 룬 정보
  • TalismanInfo - 탈리스만 상세 정보
  • RuneInfo - 룬 상세 정보

스킬 및 버프 시스템

캐릭터의 스킬과 각종 버프 효과를 나타내는 타입들:

  • CharacterSkill - 캐릭터가 습득한 스킬 목록 및 레벨
  • SkillStyle - 스킬 스타일 (액티브/패시브) 정보
  • SkillStyleInfo - 스킬 스타일 상세 정보
  • SkillInfo - 개별 스킬의 상세 정보
  • CharacterBuff - 적용 중인 버프 효과들 (장비, 아바타, 크리처 등)
  • BuffSkill - 스킬 버프 정보
  • BuffEquipment - 장비 버프 정보
  • BuffAvatar - 아바타 버프 정보
  • BuffCreature - 크리처 버프 정보

아이템 및 거래 시스템

아이템 정보와 경매장 거래 관련 타입들:

  • ItemSearch - 아이템 검색 결과 (이름, 등급별 검색)
  • ItemDetail - 아이템 상세 정보 (옵션, 설명, 획득 방법)
  • ItemStatus - 아이템 상태 정보
  • SetItemInfo - 세트 아이템 정보 및 세트 효과
  • SetItem - 세트 아이템 개별 정보
  • SetItemOption - 세트 효과 옵션 정보
  • MultiItemInfo - 멀티 아이템(조각) 정보
  • MultiItem - 멀티 아이템 개별 정보
  • ItemShop - 아이템 상점 정보
  • PackageInfo - 패키지 정보
  • PackageItem - 패키지 아이템 정보
  • AuctionSearch - 경매장 현재 판매 중인 아이템
  • AuctionItem - 경매장 아이템 정보
  • AuctionSold - 경매장 판매 완료 내역

활동 기록

  • Timeline - 캐릭터의 최근 활동 기록 (던전 클리어, 아이템 획득 등)
  • TimelineItem - 개별 활동 기록 정보

API 파라미터 및 응답 타입

던전앤파이터 API 호출을 위한 타입 지원 (34개 엔드포인트):

캐릭터 시스템 (14개 엔드포인트)

  • CharacterSearchParams / CharacterSearchResponse - 캐릭터 검색
  • CharacterBasicParams / CharacterBasicResponse - 캐릭터 기본 정보 조회
  • CharacterTimelineParams / CharacterTimelineResponse - 캐릭터 타임라인 조회
  • CharacterStatusParams / CharacterStatusResponse - 캐릭터 능력치 조회
  • CharacterEquipmentParams / CharacterEquipmentResponse - 캐릭터 장비 조회
  • CharacterAvatarParams / CharacterAvatarResponse - 캐릭터 아바타 조회
  • CharacterCreatureParams / CharacterCreatureResponse - 캐릭터 크리처 조회
  • CharacterFlagParams / CharacterFlagResponse - 캐릭터 휘장 조회
  • CharacterSkillStyleParams / CharacterSkillStyleResponse - 캐릭터 스킬 스타일 조회
  • CharacterBuffEquipmentParams / CharacterBuffEquipmentResponse - 버프 스킬 강화 장비 조회
  • CharacterBuffAvatarParams / CharacterBuffAvatarResponse - 버프 스킬 강화 아바타 조회
  • CharacterBuffCreatureParams / CharacterBuffCreatureResponse - 버프 스킬 강화 크리처 조회
  • CharacterFameSearchParams / CharacterFameSearchResponse - 캐릭터 명성 검색

경매장 시스템 (3개 엔드포인트)

  • AuctionSearchParams / AuctionSearchResponse - 경매장 검색
  • AuctionDetailParams / AuctionDetailResponse - 경매장 상세 조회
  • AuctionSoldParams / AuctionSoldResponse - 경매장 판매내역 조회

아바타 마켓 (5개 엔드포인트)

  • AvatarMarketSaleParams / AvatarMarketSaleResponse - 아바타 마켓 판매 상품
  • AvatarMarketSaleDetailParams / AvatarMarketSaleDetailResponse - 아바타 마켓 상품 상세
  • AvatarMarketSoldParams / AvatarMarketSoldResponse - 아바타 마켓 판매 내역
  • AvatarMarketSoldDetailParams / AvatarMarketSoldDetailResponse - 아바타 마켓 판매 완료 상품
  • AvatarMarketHashtagParams / AvatarMarketHashtagResponse - 아바타 마켓 해시태그

아이템 시스템 (8개 엔드포인트)

  • ItemSearchParams / ItemSearchResponse - 아이템 검색
  • ItemDetailParams / ItemDetailResponse - 아이템 상세 조회
  • ItemShopParams / ItemShopResponse - 아이템 상점 정보
  • MultiItemParams / MultiItemInfoResponse - 다중 아이템 조회
  • ItemHashtagParams / ItemHashtagResponse - 아이템 해시태그
  • SetItemSearchParams / SetItemSearchResponse - 세트 아이템 검색
  • SetItemParams / SetItemInfoResponse - 세트 아이템 조회
  • MultiSetItemParams / MultiSetItemResponse - 다중 세트 아이템 조회

직업 및 스킬 시스템 (4개 엔드포인트)

  • JobListResponse - 직업 목록 조회
  • JobSkillListParams / JobSkillListResponse - 직업별 스킬 목록 조회
  • SkillDetailParams / SkillDetailResponse - 스킬 상세 정보 조회
  • MultiSkillParams / MultiSkillResponse - 다중 스킬 조회

사이퍼즈 (Cyphers) 타입

플레이어 시스템

사이퍼즈의 플레이어 및 랭킹 시스템 관련 타입들:

  • PlayerInfo - 플레이어 기본 정보 (닉네임, 레벨, 플레이 통계)
  • PlayerMatches - 플레이어의 최근 매치 기록 목록
  • MatchRecord - 개별 매치 기록 정보
  • RankingInfo - 전체 랭킹 정보 (TOP 랭커 목록)
  • TSJRankingResponse - 투신전 랭킹 응답 (v0.3.0 추가)
  • PlayerRanking - 개별 플레이어의 랭킹 데이터 및 티어 정보

매치 및 게임 데이터

실시간 전투 및 매치 결과를 나타내는 타입들:

  • MatchDetail - 매치 상세 정보 (게임 결과, 진행 시간, 맵 정보)
  • MatchTeam - 팀 정보 (팀원 구성, 팀 점수)
  • MatchPlayer - 매치 내 플레이어 개별 성과 (킬/데스, 데미지 등)
  • MatchPlayerItem - 매치 내 플레이어 아이템 정보
  • Position - 맵 내 플레이어 위치 좌표 정보
  • PositionMap - 위치 좌표 매핑 정보

아이템 및 장비 시스템

배틀 아이템과 캐릭터 장비 관련 타입들:

  • ItemInfo - 배틀 아이템 기본 정보 (이름, 등급, 슬롯)
  • ItemDetail - 아이템 상세 정보 (효과, 획득 방법, 튜닝 정보)
  • ItemDetailResponse - 아이템 상세 조회 응답 (v0.3.0 추가)
  • MultiItemResponse - 다중 아이템 조회 응답 (v0.3.0 추가)
  • ItemSearch - 아이템 검색 결과
  • ItemTuning - 아이템 튜닝 및 강화 정보

사이퍼 캐릭터 정보

플레이 가능한 사이퍼 캐릭터들의 정보:

  • CypherInfo - 사이퍼 기본 정보 (이름, 역할군, 출시일)
  • CypherDetail - 사이퍼 상세 정보 (스토리, 컨셉)
  • CypherAbility - 사이퍼의 능력치 정보
  • CypherSkill - 사이퍼의 스킬 목록 및 설명
  • CypherSearch - 사이퍼 검색 결과
  • CypherRecommendItem - 사이퍼별 추천 배틀 아이템 조합
  • RecommendItemSlot - 추천 아이템 슬롯 정보
  • RecommendItem - 개별 추천 아이템 정보

개발자 도구

API 클라이언트 구현을 위한 인터페이스와 설정:

  • CyphersApiClient - 사이퍼즈 API 클라이언트 인터페이스 (구현 가이드라인)
  • CyphersApiConfig - API 클라이언트 설정 (API 키, 베이스 URL 등)
  • ApiRequestOptions - API 요청 옵션 (사이퍼즈 전용)
  • CYPHERS_API_ENDPOINTS - 모든 API 엔드포인트 상수 모음
  • CyphersApiEndpoint - 사이퍼즈 API 엔드포인트 타입

API 파라미터 및 응답 타입

사이퍼즈 API 호출을 위한 파라미터와 응답 타입들:

  • PlayerSearchParams - 플레이어 검색 파라미터
  • PlayerSearchResponse - 플레이어 검색 응답
  • PlayerSearchResult - 플레이어 검색 결과 개별 항목
  • PlayerInfoParams - 플레이어 정보 조회 파라미터
  • PlayerMatchesParams - 플레이어 매치 기록 조회 파라미터
  • MatchDetailParams - 매치 상세 조회 파라미터
  • RankingParams - 랭킹 조회 기본 파라미터
  • OverallRankingParams - 전체 랭킹 조회 파라미터
  • CharacterRankingParams - 캐릭터별 랭킹 조회 파라미터
  • ItemSearchParams - 아이템 검색 파라미터
  • ItemSearchResponse - 아이템 검색 응답
  • ItemSearchResult - 아이템 검색 결과 개별 항목
  • PlayerEquipmentParams - 플레이어 장비 조회 파라미터
  • CypherInfoParams - 사이퍼 정보 조회 파라미터
  • CypherInfoResponse - 사이퍼 정보 조회 응답
  • CypherSearchResult - 사이퍼 검색 결과 개별 항목
  • RecommendItemParams - 추천 아이템 조회 파라미터

동일한 이름의 타입 구분하기

일부 타입은 던전앤파이터와 사이퍼즈에서 동일한 이름을 사용합니다. 이런 경우 네임스페이스를 통해 구분하여 사용하세요:

네임스페이스를 통한 구분 사용

import type { DungeonFighter, Cyphers } from 'neople-openapi-types';

// 던전앤파이터의 ItemDetail 사용
const dfItem: DungeonFighter.ItemDetail = {
  itemId: "df001",
  itemName: "던파 아이템",
  itemRarity: "common",
  itemTypeId: "weapon",
  // ... 던파 전용 필드들
};

// 사이퍼즈의 ItemDetail 사용  
const cyItem: Cyphers.ItemDetail = {
  itemId: "cy001",
  itemName: "사이퍼즈 아이템", 
  slotCode: "weapon",
  rarityCode: "101",
  // ... 사이퍼즈 전용 필드들
};

직접 import로 별칭 사용

import type { ItemDetail as DFItemDetail } from 'neople-openapi-types/dungeon-fighter';
import type { ItemDetail as CyItemDetail } from 'neople-openapi-types/cyphers';

const dfItem: DFItemDetail = {
  itemId: "df001",
  itemName: "던파 아이템",
  itemRarity: "common"
  // ... 던파 전용 필드들
};

const cyItem: CyItemDetail = {
  itemId: "cy001", 
  itemName: "사이퍼즈 아이템",
  slotCode: "weapon"
  // ... 사이퍼즈 전용 필드들
};

개발

프로젝트 구조

src/
├── common/           # 공통 타입 및 유틸리티
│   ├── index.ts
│   ├── servers.ts    # 서버 정보 (DFServer, CyphersGameType)
│   ├── codes.ts      # HTTP/에러 코드
│   └── errors.ts     # 에러 처리
├── cyphers/          # 사이퍼즈 API 타입
│   ├── api.ts        # API 파라미터 타입
│   ├── client.ts     # 클라이언트 인터페이스
│   ├── character.ts  # 플레이어/매치 타입
│   ├── matches.ts    # 매치 상세 타입
│   ├── item.ts       # 아이템 타입
│   ├── cypher.ts     # 사이퍼 캐릭터 타입
│   ├── enums.ts      # 사이퍼즈 전용 enum (CyphersTier, CyphersItemRarity)
│   └── index.ts
├── dungeon-fighter/  # 던전앤파이터 API 타입
│   ├── api.ts        # API 파라미터 타입
│   ├── character.ts  # 캐릭터 타입
│   ├── skill.ts      # 스킬/버프 타입
│   ├── item.ts       # 아이템 타입
│   ├── auction.ts    # 경매장 타입
│   ├── timeline.ts   # 타임라인 타입
│   ├── enums.ts      # 던전앤파이터 전용 enum (DFItemRarity)
│   └── index.ts
└── index.ts          # 메인 export

npm Scripts

개발 및 빌드를 위한 주요 npm 스크립트들:

빌드 명령어

npm run build      # TypeScript 컴파일 (tsc)
npm run build:full # 전체 빌드 프로세스 (clean + typecheck + lint + build + api-extract)
npm run clean      # 빌드 결과물 정리 (dist/, temp/ 폴더 삭제)

코드 품질 명령어

npm run lint       # ESLint로 코드 검사
npm run lint:fix   # ESLint로 코드 검사 및 자동 수정
npm run format     # Prettier로 코드 포맷팅
npm run format:check # Prettier로 포맷팅 검사만 실행
npm run typecheck  # TypeScript 타입 검사 (컴파일 없이)

API 문서 생성

npm run api-extract     # API Extractor 실행 (로컬 모드)
npm run api-extract:prod # API Extractor 실행 (프로덕션 모드)

배포 관련

npm run prepublishOnly  # npm publish 전 자동 실행 (build:full과 동일)
npm test               # 테스트 실행 (현재는 placeholder)

권장 개발 워크플로우

  1. 개발 중: npm run typecheck && npm run lint로 코드 검증
  2. 코드 정리: npm run format으로 포맷팅 적용
  3. 배포 전: npm run build:full로 전체 빌드 및 API 문서 생성
  4. API 문서 확인: api-reports/neople-openapi-types.api.md 파일에서 생성된 API 문서 확인

라이선스

MIT License

이 라이브러리는 MIT 라이선스 하에 배포되며, 네오플 Open API 서비스의 이용약관을 준수합니다.

중요 사항:

  • 이 라이브러리는 네오플 Open API의 비공식 TypeScript 타입 정의입니다.
  • 네오플 Open API 서비스 이용 시 네오플의 이용약관을 반드시 준수해야 합니다.

자세한 내용은 네오플 Open API 이용정책을 참조하세요.

기여

이슈 및 풀 리퀘스트를 환영합니다!

링크


네오플 Open API 공식 문서: https://developers.neople.co.kr/