Skip to content

Update Product

브이리뷰 챗봇의 메시지에 노출되는 상품 정보를 수정합니다. 이 정보는 브이리뷰 챗봇이 사용합니다.

모든 API 는 유효한 Authorization 헤더가 있어야 사용할 수 있습니다. 헤더를 작성하는 방법은 토큰 생성과 검증 문서를 참고하시기 바랍니다.

API 정보

[PATCH] /api/v1/products/{id}/

요청

{
  "name": "string",
  "image_url": "string"
}
항목 설명 필수
id 사용자의 서비스에 저장된 고유한 id 입니다. (중복 불가) 필수
name 주문 품목의 상품 정보입니다. 브이리뷰의 챗봇 서비스를 이용하기 위해 꼭 필요한 정보입니다. 상품 정보는 브이리뷰의 데이터베이스에 기록되며 일주일마다 갱신됩니다. 선택
image_url 주문 품목의 상품 정보입니다. 브이리뷰의 챗봇 서비스를 이용하기 위해 꼭 필요한 정보입니다. 상품 정보는 브이리뷰의 데이터베이스에 기록되며 일주일마다 갱신됩니다. 선택

요청 예시

curl --location -g --request PATCH 'https://URL/api/v1/products/{id}/' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic <TOKEN>' \
--data-raw '{
  "name": "string",
  "image_url": "string"
}'
import requests
import json

url = "https://URL/api/v1/products/{id}/"

payload = json.dumps({
  "name": "string",
  "image_url": "string"
})
headers = {
  'Accept': 'application/json',
  'Content-Type': 'application/json',
  'Authorization': 'Basic <TOKEN>'
}

response = requests.request("PATCH", url, headers=headers, data=payload)

print(response.text)
import java.io.*;
import okhttp3.*;
public class main {
  public static void main(String []args) throws IOException{
    OkHttpClient client = new OkHttpClient().newBuilder()
      .build();
    MediaType mediaType = MediaType.parse("application/json");
    RequestBody body = RequestBody.create(mediaType, "{\n  \"name\": \"string\",\n  \"image_url\": \"string\"\n}");
    Request request = new Request.Builder()
      .url("https://URL/api/v1/products/{id}/")
      .method("PATCH", body)
      .addHeader("Accept", "application/json")
      .addHeader("Content-Type", "application/json")
      .addHeader("Authorization", "Basic <TOKEN>")
      .build();
    Response response = client.newCall(request).execute();
    System.out.println(response.body().string());
  }
}
import com.mashape.unirest.http.*;
import java.io.*;
public class main {
  public static void main(String []args) throws Exception{
    Unirest.setTimeouts(0, 0);
    HttpResponse<String> response = Unirest.patch("https://URL/api/v1/products/{id}/")
      .header("Accept", "application/json")
      .header("Content-Type", "application/json")
      .header("Authorization", "Basic <TOKEN>")
      .body("{\n  \"name\": \"string\",\n  \"image_url\": \"string\"\n}")
      .asString();

    System.out.println(response.getBody());
  }
}
package main

import (
  "fmt"
  "strings"
  "net/http"
  "io/ioutil"
)

func main() {

  url := "https://URL/api/v1/products/%7Bid%7D/"
  method := "PATCH"

  payload := strings.NewReader(`{
  "name": "string",
  "image_url": "string"
}`)

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Accept", "application/json")
  req.Header.Add("Content-Type", "application/json")
  req.Header.Add("Authorization", "Basic <TOKEN>")

  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := ioutil.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://URL/api/v1/products/%7Bid%7D/',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'PATCH',
  CURLOPT_POSTFIELDS =>'{
  "name": "string",
  "image_url": "string"
}',
  CURLOPT_HTTPHEADER => array(
    'Accept: application/json',
    'Content-Type: application/json',
    'Authorization: Basic <TOKEN>'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
var axios = require('axios');
var data = JSON.stringify({
  "name": "string",
  "image_url": "string"
});

var config = {
  method: 'patch',
  url: 'https://URL/api/v1/products/{id}/',
  headers: {
    'Accept': 'application/json',
    'Content-Type': 'application/json',
    'Authorization': 'Basic <TOKEN>'
  },
  data : data
};

axios(config)
.then(function (response) {
  console.log(JSON.stringify(response.data));
})
.catch(function (error) {
  console.log(error);
});

✅ 응답 - 204 : 수정 완료

❌ 응답 - 401

{
  "detail": "<에러의 내용>"
}
401 에러의 내용은 아래와 같습니다.

detail 설명
Authorization header required. 인증 헤더가 설정되어있지 않은 경우입니다.
Authorization header was invalid. 인증 헤더가 올바르지 않은 형식으로 되어있는 경우입니다.
Access key id was invalid. 인증 헤더의 Access key id가 유효하지 않은 경우입니다.
Secret access key was invalid. 인증 헤더의 Secret access key가 유효하지 않은 경우입니다.

❌ 응답 - 422

요청 바디의 유효성 검증이 실패한 경우입니다.

{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}