Project

General

Profile

RestAPIv1 » History » Version 83

Version 82 (admin, 05/15/2014 01:33 AM) → Version 83/100 (admin, 05/15/2014 11:42 AM)

{{>toc}}

h1. The 3DCGARTS REST API v1.0

h2. API キーについて

{{thumbnail(1.png,size=320)}}

h3. API キーの作成

* 1. サービスにログインしている状態で、プロフィール画面( http://www.3dcg-arts.net/my/arts )にアクセスします。

* 2. API キー作成する場合は、「API キーを作成する」をクリックします。

h3. API キーの削除

* 1. サービスにログインしている状態で、プロフィール画面( http://www.3dcg-arts.net/my/arts )にアクセスします。

* 2. API キー削除する場合は、「API キーを削除する」をクリックします。

h3. API キーの取り扱い

* *API キーを他人に知られてしまった場合、あなたのアカウントで作品を投稿できてしまうため、 API キーは他人に知られないように大切に保管してください(不要であれば API キーを作成しないでください)。*

h2. HTTP ステータスコード(全ての API において共通します)

|*コード*|*説明*|
|200|API の実行に成功しました。|
|304|API の実行に成功しました。|
|400|API の引数に問題があります。|
|403|API の引数に問題があります(アクセス権限が存在しない)。|
|500|API の実行に失敗しました(投稿作品の保存に失敗した or 投稿作品の変換に失敗した)。|

h2. 作品の取得

* HTTP メソッド
** GET
* HTTP パス
** http://api.3dcg-arts.net/api/v1/arts.json

h3. API 呼出

|*引数名*|*引数値*|*説明*|*デフォルト*|*指定*|
|ids|文字列|作品番号(カンマ区切りにより複数指定が可能)|-|必須|

h3. API 応答

h4. 失敗時

<pre><code class="json">
{
"error_message": "[エラーメッセージ]"
}
</code></pre>

h5. HTTP ステータスコード

失敗時のステータスコードは、次の通りです。

|*コード*|*説明*|
|400|API の引数に問題があります。|
|403|API の引数に問題があります(アクセス権限が存在しない)。|
|500|API の実行に失敗しました。|

h4. 成功時

<pre><code class="json">
[
{
"id": "[作品番号]",
"title": "[作品名]",
"icon":
{
"128x128": "[128x128 サイズのアイコンパス]",
"256x256": "[256x256 サイズのアイコンパス]"
}
}
]
</code></pre>

h5. HTTP ステータスコード

成功時のステータスコードは、次の通りです。

|*コード*|*説明*|
|200|API の実行に成功しました。|
|304|API の実行に成功しました(応答内容に差分が存在しない)。|

h4. API サンプル

* HTTP メソッド
** GET
* HTTP パス
** http://api.3dcg-arts.net/api/v1/arts.json?ids=1

h5. 実行結果(例)

<pre><code class="json">
[
{
"id": 1,
"title": "初音ミク・オン・ステージ",
"icon":
{
"128x128": "http://www.3dcg-arts.net/s3/art_icons/532/834d9539a9b9fae6acd9136e270b2e2ca94342e5e362c68018e97f543b150ab7/128x128.png",
"256x256": "http://www.3dcg-arts.net/s3/art_icons/532/e5c6e6d5513da17c9a608c5d61d7bb5f75b04612001dfc491b61b525150523dc/256x256.png"
}
}
]
</code></pre>

h2. 作品の投稿(API キーの発行が必要です)

* HTTP メソッド
** POST
* HTTP パス
** http://api.3dcg-arts.net/api/v1/arts.json

h3. API 呼出

|*引数名*|*引数値*|*説明*|*デフォルト*|*指定*|
|secret_access_key|文字列(SHA-512)|API キー|-|必須|
|type|文字列|投稿形式(イメージ作品: <code>"i"</code> or ポリゴン作品: <code>"p"</code>)|-|必須|
|content0[name]|文字列|投稿ファイル名|-|必須|
|content0[data]|文字列|投稿ファイル(baes64 encode されたファイルバイナリ)|-|必須|
|content1[name]|文字列|投稿ファイル名|-|任意|
|content1[data]|文字列|投稿ファイル(baes64 encode されたファイルバイナリ)|-|任意(content1[name] が指定されている場合、必須)|
|content2[name]|文字列|投稿ファイル名|-|任意|
|content2[data]|文字列|投稿ファイル(baes64 encode されたファイルバイナリ)|-|任意(content2[name] が指定されている場合、必須)|
|content3[name]|文字列|投稿ファイル名|-|任意|
|content3[data]|文字列|投稿ファイル(baes64 encode されたファイルバイナリ)|-|任意(content3[name] が指定されている場合、必須)|
|content4[name]|文字列|投稿ファイル名|-|任意|
|content4[data]|文字列|投稿ファイル(baes64 encode されたファイルバイナリ)|-|任意(content4[name] が指定されている場合、必須)|
|content5[name]|文字列|投稿ファイル名|-|任意|
|content5[data]|文字列|投稿ファイル(baes64 encode されたファイルバイナリ)|-|任意(content5[name] が指定されている場合、必須)|
|content6[name]|文字列|投稿ファイル名|-|任意|
|content6[data]|文字列|投稿ファイル(baes64 encode されたファイルバイナリ)|-|任意(content6[name] が指定されている場合、必須)|
|content7[name]|文字列|投稿ファイル名|-|任意|
|content7[data]|文字列|投稿ファイル(baes64 encode されたファイルバイナリ)|-|任意(content7[name] が指定されている場合、必須)|
|content8[name]|文字列|投稿ファイル名|-|任意|
|content8[data]|文字列|投稿ファイル(baes64 encode されたファイルバイナリ)|-|任意(content8[name] が指定されている場合、必須)|
|content9[name]|文字列|投稿ファイル名|-|任意|
|content9[data]|文字列|投稿ファイル(baes64 encode されたファイルバイナリ)|-|任意(content9[name] が指定されている場合、必須)|

* *"イメージ作品を投稿する場合":http://www.3dcg-arts.net/my/arts/new*
** type パラメータに文字 <code>"i"</code> を与えます。
<pre>
secret_access_key=<API キー>&type=i&content0[name]=example.jpg&content0[data]=<base64 encode されたファイルバイナリの文字列>
</pre>

* *"ポリゴン作品を投稿する場合":http://www.3dcg-arts.net/my/arts/new*
** type パラメータに文字 <code>"p"</code> を与えます。
<pre>
secret_access_key=<API キー>&type=p&content0[name]=example.zip&content0[data]=<base64 encode されたファイルバイナリの文字列>
</pre>

* 投稿ファイルについて
** 投稿ファイルは *"base64 encode":http://ja.wikipedia.org/wiki/Base64* された「ポリゴンファイル」「テクスチャファイル」「マテリアルファイル」の文字列を指定するか、
各ファイルをまとめた ZIP ファイル(圧縮ファイル)のバイナリを *"base64 encode":http://ja.wikipedia.org/wiki/Base64* した文字列を指定してください("投稿形式の詳細はこちら":http://help.3dcg-arts.net/projects/support/wiki/Specs)。

h3. API 応答

h4. 失敗時

<pre><code class="json">
{
"error_message": "[エラーメッセージ]"
}
</code></pre>

h5. HTTP ステータスコード

失敗時のステータスコードは、次の通りです。

|*コード*|*説明*|
|400|API の引数に問題があります。|
|403|API の引数に問題があります(アクセス権限が存在しない)。|
|500|API の実行に失敗しました(投稿作品の保存に失敗した or 投稿作品の変換に失敗した)。|

h4. 成功時

<pre><code class="json">
{
"id": "[作品番号]",
"edit_my_art_path": "[投稿作品の編集ページ]"
}
</code></pre>

h5. HTTP ステータスコード

成功時のステータスコードは、次の通りです。

|*コード*|*説明*|
|200|API の実行に成功しました。|
|304|API の実行に成功しました(応答内容に差分が存在しない)。|

h4. API サンプル(イメージ作品の投稿)

* HTTP メソッド
** POST
* HTTP パス
** http://api.3dcg-arts.net/api/v1/arts.json



h5. サンプルプログラム(ruby 1.8/1.9/2.0/2.1) 1.9/2.0/2.1)

<pre><code class="ruby">
# -*- coding: utf-8 -*-
require "base64"
require "cgi"
require "net/http"
require "uri"

secret_access_key = "Write your secret access key" # NOTE: あなたの API キーをここに記述してください。

file_name = "example.jpg"
file_data = ::CGI.escape ::Base64.strict_encode64 ::File.read "example.jpg"

uri = URI.parse "http://api.3dcg-arts.net/api/v1/arts.json"

::Net::HTTP.start uri.host, uri.port { | http |
response = http.post uri.path, "secret_access_key=#{ secret_access_key }&type=i&content0[name]=#{ file_name }&content0[data]=#{ file_data }"

puts response.body
}
</code></pre>



h5. 実行結果(例)

<pre><code class="json">
{
"id": 1,
"edit_my_art_path": "http://www.3dcg-arts.net/my/arts/1/edit"
}
</code></pre>

h4. API サンプル(ポリゴン作品の投稿)

* HTTP メソッド
** POST
* HTTP パス
** http://api.3dcg-arts.net/api/v1/arts.json

h5. サンプルプログラム(ruby 1.9/2.0/2.1)

<pre><code class="ruby">
# -*- coding: utf-8 -*-
require "base64"
require "cgi"
require "net/http"
require "uri"

secret_access_key = "Write your secret access key" # NOTE: あなたの API キーをここに記述してください。

file_name = "example.zip"
file_data = ::CGI.escape ::Base64.strict_encode64 ::File.read "example.zip"

uri = URI.parse "http://api.3dcg-arts.net/api/v1/arts.json"

::Net::HTTP.start uri.host, uri.port { | http |
response = http.post uri.path, "secret_access_key=#{ secret_access_key }&type=p&content0[name]=#{ file_name }&content0[data]=#{ file_data }"

puts response.body
}
</code></pre>

h5. 実行結果(例)

<pre><code class="json">
{
"id": 1,
"edit_my_art_path": "http://www.3dcg-arts.net/my/arts/1/edit"
}
</code></pre>