API 문서

개요

이 API는 사용자의 얼굴 사진, 레퍼런스 사진들, 그리고 상품컷들의 AWS URL을 입력받아 가상의 사진을 생성하는 서비스를 제공합니다.

Base URL

https://linaphotos.com/api/v1

가상 사진 생성 요청

POST /generate

PHP 사용 예시

<?php
$data = array(
    'api_key' => 'YOUR_API_KEY',
    'title' => '겨울 화보 촬영',
    'request_key' => 'winter_2025_001',
    'face_photo_url' => 'https://your-bucket.s3.amazonaws.com/face/user123.jpg',
    'reference_photo_urls' => array(
        'https://your-bucket.s3.amazonaws.com/references/ref1.jpg',
        'https://your-bucket.s3.amazonaws.com/references/ref2.jpg'
    ),
    'product_photo_urls' => array(
        'https://your-bucket.s3.amazonaws.com/products/product1.jpg',
        'https://your-bucket.s3.amazonaws.com/products/product2.jpg'
    ),
    'style' => 'natural'
);

$ch = curl_init('https://linaphotos.com/api/v1/generate');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json'
));

$response = curl_exec($ch);
$result = json_decode($response, true);
curl_close($ch);

print_r($result);
?>

요청 파라미터

파라미터 타입 필수 여부 설명
api_key String 필수 API 인증 키
title String 필수 요청의 제목 (최대 100자)
request_key String 필수 클라이언트측 요청 구분 키 (영문, 숫자, 언더스코어 조합, 최대 50자)
face_photo_url String 필수 사용자의 얼굴 사진 AWS S3 URL
reference_photo_urls Array 필수 레퍼런스 사진들의 AWS S3 URL 배열 (최대 5장)
product_photo_urls Array 필수 상품컷들의 AWS S3 URL 배열 (최대 10장)
style String 선택 생성할 사진의 스타일 ("natural", "artistic", "portrait" 중 선택, 기본값: "natural")

응답 예시

{
    "request_id": "gen_123456789",
    "request_key": "winter_2025_001",
    "title": "겨울 화보 촬영",
    "status": "processing",
    "estimated_time": 30,
    "callback_url": "https://linaphotos.com/api/v1/status/gen_123456789"
}

생성 상태 확인

GET /status/{request_id}?api_key=YOUR_API_KEY

PHP 사용 예시

<?php
$request_id = 'gen_123456789';
$api_key = 'YOUR_API_KEY';

$ch = curl_init("https://linaphotos.com/api/v1/status/{$request_id}?api_key={$api_key}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
$result = json_decode($response, true);
curl_close($ch);

print_r($result);
?>

응답 예시

{
    "request_id": "gen_123456789",
    "request_key": "winter_2025_001",
    "title": "겨울 화보 촬영",
    "status": "completed",
    "result": {
        "photo_urls": [
            "https://your-bucket.s3.amazonaws.com/results/gen_123456789_1.jpg",
            "https://your-bucket.s3.amazonaws.com/results/gen_123456789_2.jpg"
        ],
        "created_at": "2025-02-14T10:30:00Z"
    }
}

오류 응답

상태 코드 설명
400 잘못된 요청 (파라미터 누락 또는 형식 오류)
401 잘못된 API 키
404 이미지 URL에 접근할 수 없음
409 중복된 request_key
429 요청 한도 초과
500 서버 오류

제한 사항

웹훅

생성이 완료되면 설정된 웹훅 URL로 결과가 전송됩니다.

웹훅 페이로드 예시

{
    "request_id": "gen_123456789",
    "request_key": "winter_2025_001",
    "title": "겨울 화보 촬영",
    "status": "completed",
    "result": {
        "photo_urls": [
            "https://your-bucket.s3.amazonaws.com/results/gen_123456789_1.jpg",
            "https://your-bucket.s3.amazonaws.com/results/gen_123456789_2.jpg"
        ],
        "created_at": "2025-02-14T10:30:00Z"
    }
}

PHP 웹훅 처리 예시

<?php
// 웹훅으로 전송된 JSON 데이터 받기
$webhook_data = file_get_contents('php://input');
$data = json_decode($webhook_data, true);

// 데이터 처리
if ($data['status'] === 'completed') {
    $request_id = $data['request_id'];
    $request_key = $data['request_key'];
    $photo_urls = $data['result']['photo_urls'];
    
    // 여기에 결과 처리 로직 구현
    // 예: 데이터베이스에 저장
    saveToDatabase($request_id, $request_key, $photo_urls);
}

// 응답 반환
http_response_code(200);
echo json_encode(['status' => 'success']);
?>