gemini

Gemini API 통합 프롬프트 - REST API, GraphQL, 웹훅

외부 API와 서비스를 통합하는 코드를 작성합니다. 인증, 요청 처리, 에러 핸들링 포함.

수정
💡

프롬프트 사용 방법

  1. 1단계: 아래 입력 칸에 각 항목에 맞는 정보를 적어주세요
  2. 2단계: 입력하면 아래 프롬프트가 자동으로 업데이트됩니다
  3. 3단계: '프롬프트 복사' 버튼을 눌러 ChatGPT/Claude에 붙여넣으세요

💡 입력 칸의 회색 글씨는 예시입니다. 참고해서 작성해보세요!

📝 필요한 정보를 입력해주세요 (총 5개)

API 이름에 대한 값을 입력하세요

필요 기능에 대한 값을 입력하세요

사용자 인증 방식

웹훅 필요에 대한 값을 입력하세요

사용 언어

📋 완성된 프롬프트 (복사해서 사용하세요)

API 통합 솔루션을 제공하세요.


## 통합 대상
- API 이름: {{API_이름}}
- 필요 기능: {{필요_기능}}
- 인증 방식: {{인증_방식}} (OAuth2/APIKey/JWT)
- 웹훅 필요: {{웹훅_필요}}
- 언어: {{언어}}

## 구현 요구사항
1. API 클라이언트 클래스
2. 인증 처리
3. Rate Limiting 대응
4. 에러 핸들링 및 재시도

입력하지 않은 항목은 원래 표시를 유지합니다.

간단 버전

{{API_이름}} API를 통합해주세요.
기능: {{필요_기능}}, 언어: {{언어}}
클라이언트 코드와 에러 처리를 포함해주세요.

입력값 가이드

입력 항목 한국어 설명 placeholder 예시
api_name 연동할 외부 서비스 이름을 입력하세요 예: Slack, Stripe, GitHub Slack, Stripe, GitHub, OpenAI
required_features 구현할 주요 기능을 입력하세요 예: 메시지 전송, 결제 처리 메시지 전송, 결제 처리, 파일 업로드
auth_method API가 요구하는 인증 방식을 선택하세요 예: OAuth 2.0, API Key, JWT OAuth 2.0, API Key, JWT
webhook_needed 웹훅 수신 여부를 선택하세요 예: 필요함, 불필요 필요함, 불필요
language 개발 언어/프레임워크를 선택하세요 예: TypeScript, Python, Node.js TypeScript, Python, Node.js

인풋 필드

[API 이름]
▼ 텍스트 입력
placeholder: "예: Slack, Stripe, GitHub"
설명: 연동할 외부 서비스 이름을 입력하세요

[필요 기능]
▼ 텍스트 영역 입력
placeholder: "예: 메시지 전송, 결제 처리"
설명: 구현할 주요 기능을 입력하세요

[인증 방식]
▼ 드롭다운 선택
옵션: OAuth 2.0, API Key, JWT, Basic Auth, 없음
placeholder: "예: OAuth 2.0, API Key, JWT"
설명: API가 요구하는 인증 방식을 선택하세요

[웹훅 필요]
▼ 드롭다운 선택
옵션: 필요함, 불필요
placeholder: "예: 필요함, 불필요"
설명: 웹훅 수신 여부를 선택하세요

[언어]
▼ 드롭다운 선택
옵션: TypeScript, Python, Node.js, Java, Go
placeholder: "예: TypeScript, Python, Node.js"
설명: 개발 언어/프레임워크를 선택하세요

인증 방식별 구현

API Key

const client = new APIClient({
  baseUrl: 'https://api.example.com',
  headers: { 'X-API-Key': process.env.API_KEY }
});

OAuth 2.0

// 1. 인증 URL 생성 → 2. 콜백 처리 → 3. 토큰 저장
const authUrl = oauth.getAuthorizationUrl(state);
const tokens = await oauth.exchangeCodeForToken(code);

JWT

const token = jwt.sign({ userId }, secret, { expiresIn: '1h' });
headers: { 'Authorization': `Bearer ${token}` }

Rate Limiting 대응

class RateLimiter {
  async waitForToken(): Promise<void> {
    if (this.tokens < 1) {
      await this.sleep(this.calculateWaitTime());
    }
    this.tokens--;
  }
}

에러 핸들링

에러 타입 상태 코드 처리 방식
Rate Limit 429 Retry-After 만큼 대기 후 재시도
인증 실패 401 토큰 갱신 또는 재인증
서버 에러 5xx 지수 백오프로 재시도

재시도 정책

const retryPolicy = {
  maxRetries: 3,
  backoffStrategy: 'exponential',
  baseDelay: 1000,
  retryableStatusCodes: [429, 500, 502, 503, 504]
};

체크리스트

  • 인증 구현 (OAuth/APIKey/JWT)
  • Rate Limiting 대응
  • 재시도 로직
  • 에러 핸들링
  • 웹훅 서명 검증 (필요시)

🚀 AI 바로 열기

🔗 관련 프롬프트