# B2B API 연동 가이드 (B2B API Integration Guide)

발급받은 B2B API 키(예: `mf_live_06c59b2a8b20db064c3f76e5c9e4ed9b`)를 사용하여 연동 테스트를 진행하는 방법은 다음과 같습니다. 

로컬 개발 환경(`https://staging.medifact.today`) 또는 실제 서버 환경의 엔드포인트를 대상으로 간단히 요청을 발송해 볼 수 있습니다.

---

## 1. cURL 명령어 (터미널에서 즉시 테스트)
터미널을 열고 아래 명령어를 실행하여 팩트체킹 분석 결과를 JSON으로 받아볼 수 있습니다.
(`Authorization` 헤더의 `mf_live_06c59b2a8b20db064c3f76e5c9e4ed9b` 부분에 복사하신 실제 키값을 입력해 주세요.)

```bash
curl -X POST https://staging.medifact.today/b2b-demo/test-api \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer mf_live_06c59b2a8b20db064c3f76e5c9e4ed9b" \
  -d '{
    "text": "루테인과 지아잔틴을 꾸준히 섭취하면 황반의 색소 밀도를 유지하여 황반변성을 예방하는 데 입증된 효과가 있다."
  }'
```

---

## 2. Postman 또는 Insomnia 등의 API 클라이언트 테스트
* **Method**: `POST`
* **URL**: `https://staging.medifact.today/b2b-demo/test-api` *(또는 프로덕션 서버 도메인)*
* **Headers**:
  * `Content-Type`: `application/json`
  * `Authorization`: `Bearer mf_live_06c59b2a8b20db064c3f76e5c9e4ed9b`
* **Body (raw JSON)**:
  ```json
  {
    "text": "루테인과 지아잔틴을 꾸준히 섭취하면 황반의 색소 밀도를 유지하여 황반변성을 예방하는 데 입증된 효과가 있다."
  }
  ```

---

## 3. 언어별 연동 예제 코드

### Node.js (JavaScript - Fetch API)
자바스크립트 기반 백엔드 서비스(NestJS, Express 등)에서 연동할 때 사용하는 예제입니다.

```javascript
const apiKey = "mf_live_06c59b2a8b20db064c3f76e5c9e4ed9b"; // 발급받은 B2B API Key

async function verifyMedicalText(text) {
  try {
    const response = await fetch("https://staging.medifact.today/b2b-demo/test-api", {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        "Authorization": `Bearer ${apiKey}`
      },
      body: JSON.stringify({ text })
    });

    const result = await response.json();
    console.log("검증 결과 신뢰도 점수:", result.medifact_score);
    console.log("세부 검증 내용:", JSON.stringify(result.results, null, 2));
  } catch (error) {
    console.error("API 연동 에러:", error);
  }
}

verifyMedicalText("콜라겐 섭취가 피부 진피층 주름 개선에 탁월하다.");
```

### Ruby (Net::HTTP)
루비 또는 타 Rails 프로젝트에서 연동할 때 사용하는 예제입니다.

```ruby
require 'net/http'
require 'uri'
require 'json'

api_key = "mf_live_06c59b2a8b20db064c3f76e5c9e4ed9b" # 발급받은 B2B API Key
uri = URI.parse("https://staging.medifact.today/b2b-demo/test-api")

header = {
  'Content-Type' => 'application/json',
  'Authorization' => "Bearer #{api_key}"
}
body = { text: "동물용 구충제 펜벤다졸이 항암 효과가 있다." }

http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Post.new(uri.request_uri, header)
request.body = body.to_json

response = http.request(request)

if response.code == "200"
  result = JSON.parse(response.body)
  puts "스코어: #{result['medifact_score']}"
  puts "의학적 근거: #{result['results']}"
else
  puts "요청 실패: #{response.code} - #{response.body}"
end
```

---

## 4. B2B Sandbox 콘솔을 통한 대조 테스트
연동에 문제가 있거나 응답 구조 비교가 필요할 때, 언제든지 [B2B API 샌드박스 페이지](https://staging.medifact.today/b2b-demo)의 **Live API Request Tester**에 지문을 넣고 전송하여 브라우저 콘솔 및 화면 상의 Sandbox Console 응답 형태가 실제 개발 코드의 응답값과 같은지 간편하게 대조해 보실 수 있습니다.
