Project

General

Profile

RestAPIv1 » History » Version 71

admin, 05/15/2014 01:14 AM

1 12 admin
{{>toc}}
2 12 admin
3 2
h1. The 3DCGARTS REST API v1.0
4 2
5 17 admin
h2. API キーについて
6 2
7 17 admin
{{thumbnail(1.png,size=320)}}
8 2
9 17 admin
h3. API キーの作成
10 17 admin
11 20 admin
* 1. サービスにログインしている状態で、プロフィール画面( http://www.3dcg-arts.net/my/arts )にアクセスします。
12 17 admin
13 21 admin
* 2. API キー作成する場合は、「API キーを作成する」をクリックします。
14 17 admin
15 17 admin
h3. API キーの削除
16 17 admin
17 20 admin
* 1. サービスにログインしている状態で、プロフィール画面( http://www.3dcg-arts.net/my/arts )にアクセスします。
18 17 admin
19 21 admin
* 2. API キー削除する場合は、「API キーを削除する」をクリックします。
20 17 admin
21 17 admin
h3. API キーの取り扱い
22 17 admin
23 66 admin
* *API キーが他人に知られてしまった場合、あなたのアカウントで作品を投稿できてしまうため、 API キーは他人に知られないように大切に保管してください(不要であれば API キーを作成しないでください)。*
24 13 admin
25 55 admin
h2. HTTP ステータスコード(全ての API において共通します)
26 45 admin
27 46 admin
|*コード*|*説明*|
28 52 admin
|200|API の実行に成功しました。|
29 52 admin
|304|API の実行に成功しました。|
30 51 admin
|400|API の引数に問題があります。|
31 58 admin
|403|API の引数に問題があります(アクセス権限が存在しない)。|
32 51 admin
|500|API の実行に失敗しました(投稿作品の保存に失敗した or 投稿作品の変換に失敗した)。|
33 45 admin
34 26 admin
h2. 作品の取得
35 2
36 4 admin
* HTTP メソッド
37 4 admin
** GET
38 4 admin
* HTTP パス
39 4 admin
** http://api.3dcg-arts.net/api/v1/arts.json
40 4 admin
41 4 admin
h3. API 呼出
42 4 admin
43 33 admin
|*引数名*|*引数値*|*説明*|*デフォルト*|*指定*|
44 33 admin
|ids|文字列|作品番号(カンマ区切りにより複数指定可能です)|-|必須|
45 4 admin
46 2
h3. API 応答
47 2
48 5 admin
h4. 失敗時
49 5 admin
50 2
<pre><code class="json">
51 2
{
52 2
  "error_message": "[エラーメッセージ]"
53 2
}
54 2
</code></pre>
55 2
56 51 admin
h5. HTTP ステータスコード
57 51 admin
58 51 admin
失敗時のステータスコードは、次の通りです。
59 51 admin
60 51 admin
|*コード*|*説明*|
61 51 admin
|400|API の引数に問題があります。|
62 58 admin
|403|API の引数に問題があります(アクセス権限が存在しない)。|
63 52 admin
|500|API の実行に失敗しました。|
64 51 admin
65 5 admin
h4. 成功時
66 5 admin
67 37 admin
<pre><code class="json">
68 5 admin
[
69 5 admin
  {
70 37 admin
    "id": "[作品番号]",
71 5 admin
    "title": "[作品名]",
72 5 admin
    "icon":
73 6 admin
    {
74 6 admin
      "128x128": "[128x128 サイズのアイコンパス]",
75 2
      "256x256": "[256x256 サイズのアイコンパス]"
76 2
    }
77 2
  }
78 2
]
79 2
</code></pre>
80 2
81 51 admin
h5. HTTP ステータスコード
82 51 admin
83 51 admin
成功時のステータスコードは、次の通りです。
84 51 admin
85 51 admin
|*コード*|*説明*|
86 51 admin
|200|API の実行に成功しました。|
87 67 admin
|304|API の実行に成功しました(応答内容に差分が存在しない)。|
88 51 admin
89 8 admin
h4. API サンプル
90 6 admin
91 7 admin
* HTTP メソッド
92 7 admin
** GET
93 7 admin
* HTTP パス
94 7 admin
** http://api.3dcg-arts.net/api/v1/arts.json?ids=1
95 7 admin
96 37 admin
<pre><code class="json">
97 6 admin
[
98 6 admin
  {
99 6 admin
    "id": 1,
100 6 admin
    "title": "初音ミク・オン・ステージ",
101 6 admin
    "icon":
102 6 admin
    {
103 6 admin
      "128x128": "http://www.3dcg-arts.net/s3/art_icons/532/834d9539a9b9fae6acd9136e270b2e2ca94342e5e362c68018e97f543b150ab7/128x128.png",
104 6 admin
      "256x256": "http://www.3dcg-arts.net/s3/art_icons/532/e5c6e6d5513da17c9a608c5d61d7bb5f75b04612001dfc491b61b525150523dc/256x256.png"
105 6 admin
    }
106 6 admin
  }
107 6 admin
]
108 37 admin
</code></pre>
109 5 admin
110 68 admin
h2. 作品の投稿(API キーの発行が必要です)
111 2
112 4 admin
* HTTP メソッド
113 4 admin
** POST
114 2
* HTTP パス
115 31 admin
** http://api.3dcg-arts.net/api/v1/arts.json
116 2
117 2
h3. API 呼出
118 2
119 29 admin
|*引数名*|*引数値*|*説明*|*デフォルト*|*指定*|
120 2
|secret_access_key|文字列(SHA-512)|API キー|-|必須|
121 53 admin
|type|文字列|投稿形式(イメージ作品: "i" or ポリゴン作品: "p")|-|必須|
122 52 admin
|content0[name]|文字列|投稿データの拡張子|-|必須|
123 52 admin
|content0[data]|文字列|投稿データ(baes64 encode されたファイルバイナリ)|-|必須|
124 52 admin
|content1[name]|文字列|投稿データの拡張子|-|任意|
125 52 admin
|content1[data]|文字列|投稿データ(baes64 encode されたファイルバイナリ)|-|任意(content1[name] が指定されている場合、必須)|
126 52 admin
|content2[name]|文字列|投稿データの拡張子|-|任意|
127 52 admin
|content2[data]|文字列|投稿データ(baes64 encode されたファイルバイナリ)|-|任意(content2[name] が指定されている場合、必須)|
128 52 admin
|content3[name]|文字列|投稿データの拡張子|-|任意|
129 52 admin
|content3[data]|文字列|投稿データ(baes64 encode されたファイルバイナリ)|-|任意(content3[name] が指定されている場合、必須)|
130 52 admin
|content4[name]|文字列|投稿データの拡張子|-|任意|
131 52 admin
|content4[data]|文字列|投稿データ(baes64 encode されたファイルバイナリ)|-|任意(content4[name] が指定されている場合、必須)|
132 52 admin
|content5[name]|文字列|投稿データの拡張子|-|任意|
133 52 admin
|content5[data]|文字列|投稿データ(baes64 encode されたファイルバイナリ)|-|任意(content5[name] が指定されている場合、必須)|
134 52 admin
|content6[name]|文字列|投稿データの拡張子|-|任意|
135 52 admin
|content6[data]|文字列|投稿データ(baes64 encode されたファイルバイナリ)|-|任意(content6[name] が指定されている場合、必須)|
136 52 admin
|content7[name]|文字列|投稿データの拡張子|-|任意|
137 52 admin
|content7[data]|文字列|投稿データ(baes64 encode されたファイルバイナリ)|-|任意(content7[name] が指定されている場合、必須)|
138 52 admin
|content8[name]|文字列|投稿データの拡張子|-|任意|
139 52 admin
|content8[data]|文字列|投稿データ(baes64 encode されたファイルバイナリ)|-|任意(content8[name] が指定されている場合、必須)|
140 52 admin
|content9[name]|文字列|投稿データの拡張子|-|任意|
141 52 admin
|content9[data]|文字列|投稿データ(baes64 encode されたファイルバイナリ)|-|任意(content9[name] が指定されている場合、必須)|
142 2
143 2
* *"イメージ作品を投稿する場合":http://www.3dcg-arts.net/my/arts/new*
144 53 admin
** type パラメータに文字 "i" を与えます。
145 53 admin
<pre>
146 57 admin
secret_access_key=<API キー>&type=i&content0[name]=example.jpg&content0[data]=<base64 encode されたファイルバイナリの文字列>
147 53 admin
</pre>
148 53 admin
149 2
* *"ポリゴン作品を投稿する場合":http://www.3dcg-arts.net/my/arts/new*
150 53 admin
** type パラメータに文字 "p" を与えます。
151 53 admin
<pre>
152 57 admin
secret_access_key=<API キー>&type=p&content0[name]=example.zip&content0[data]=<base64 encode されたファイルバイナリの文字列>
153 53 admin
</pre>
154 2
155 2
* 投稿データについて
156 2
** 投稿データは *"base64 encode":http://ja.wikipedia.org/wiki/Base64* された「ポリゴンファイル」「テクスチャファイル」「マテリアルファイル」の文字列を指定するか、
157 2
各ファイルをまとめた ZIP ファイル(圧縮ファイル)のバイナリを *"base64 encode":http://ja.wikipedia.org/wiki/Base64* した文字列を指定してください("投稿形式の詳細はこちら":http://help.3dcg-arts.net/projects/support/wiki/Specs)。
158 9 admin
159 9 admin
h3. API 応答
160 43 admin
161 2
h4. 失敗時
162 2
163 2
<pre><code class="json">
164 2
{
165 2
  "error_message": "[エラーメッセージ]"
166 2
}
167 2
</code></pre>
168 50 admin
169 50 admin
h5. HTTP ステータスコード
170 51 admin
171 2
失敗時のステータスコードは、次の通りです。
172 2
173 50 admin
|*コード*|*説明*|
174 51 admin
|400|API の引数に問題があります。|
175 58 admin
|403|API の引数に問題があります(アクセス権限が存在しない)。|
176 2
|500|API の実行に失敗しました(投稿作品の保存に失敗した or 投稿作品の変換に失敗した)。|
177 51 admin
178 51 admin
h4. 成功時
179 51 admin
180 2
<pre><code class="json">
181 2
{
182 52 admin
  "id": "[作品番号]",
183 2
  "edit_my_art_path": "[投稿作品の編集ページ]"
184 2
}
185 2
</code></pre>
186 11 admin
187 37 admin
h5. HTTP ステータスコード
188 51 admin
189 2
成功時のステータスコードは、次の通りです。
190 51 admin
191 51 admin
|*コード*|*説明*|
192 51 admin
|200|API の実行に成功しました。|
193 69 admin
|304|API の実行に成功しました(応答内容に差分が存在しない)。|
194 51 admin
195 51 admin
h4. API サンプル(イメージ作品の投稿)
196 51 admin
197 2
* HTTP メソッド
198 2
** POST
199 2
* HTTP パス
200 52 admin
** http://api.3dcg-arts.net/api/v1/arts.json
201 30 admin
202 64 admin
h5. サンプルプログラム(ruby 1.9/2.0/2.1)
203 59 admin
204 59 admin
<pre><code class="ruby">
205 59 admin
# -*- coding: utf-8 -*-
206 59 admin
require "base64"
207 59 admin
require "cgi"
208 59 admin
require "net/http"
209 59 admin
require "uri"
210 59 admin
211 62 admin
secret_access_key = "Write your secret access key" # NOTE: あなたの API キーをここに記述してください。
212 59 admin
213 59 admin
file_name =                                                   "example.jpg"
214 59 admin
file_data = ::CGI.escape ::Base64.strict_encode64 ::File.read "example.jpg"
215 59 admin
216 59 admin
uri = URI.parse "http://api.3dcg-arts.net/api/v1/arts.json"
217 59 admin
218 59 admin
::Net::HTTP.start uri.host, uri.port { | http |
219 59 admin
  response = http.post uri.path, "secret_access_key=#{ secret_access_key }&type=i&content0[name]=#{ file_name }&content0[data]=#{ file_data }"
220 59 admin
221 59 admin
  puts response.body
222 59 admin
  puts response.code
223 59 admin
}
224 59 admin
</code></pre>
225 59 admin
226 70 admin
h5. 実行結果(例)
227 59 admin
228 37 admin
<pre><code class="json">
229 36 admin
{
230 52 admin
  "id": 1,
231 2
  "edit_my_art_path": "http://www.3dcg-arts.net/my/arts/1/edit"
232 51 admin
}
233 37 admin
</code></pre>
234 30 admin
235 30 admin
h4. API サンプル(ポリゴン作品の投稿)
236 30 admin
237 30 admin
* HTTP メソッド
238 2
** POST
239 43 admin
* HTTP パス
240 52 admin
** http://api.3dcg-arts.net/api/v1/arts.json
241 43 admin
242 63 admin
h5. サンプルプログラム(ruby 1.9/2.0/2.1)
243 60 admin
244 60 admin
<pre><code class="ruby">
245 60 admin
# -*- coding: utf-8 -*-
246 60 admin
require "base64"
247 60 admin
require "cgi"
248 60 admin
require "net/http"
249 60 admin
require "uri"
250 60 admin
251 61 admin
secret_access_key = "Write your secret access key" # NOTE: あなたの API キーをここに記述してください。
252 60 admin
253 60 admin
file_name =                                                   "example.zip"
254 60 admin
file_data = ::CGI.escape ::Base64.strict_encode64 ::File.read "example.zip"
255 60 admin
256 60 admin
uri = URI.parse "http://api.3dcg-arts.net/api/v1/arts.json"
257 60 admin
258 60 admin
::Net::HTTP.start uri.host, uri.port { | http |
259 60 admin
  response = http.post uri.path, "secret_access_key=#{ secret_access_key }&type=p&content0[name]=#{ file_name }&content0[data]=#{ file_data }"
260 60 admin
261 60 admin
  puts response.body
262 60 admin
  puts response.code
263 60 admin
}
264 60 admin
</code></pre>
265 60 admin
266 71 admin
h5. 実行結果(例)
267 60 admin
268 43 admin
<pre><code class="json">
269 43 admin
{
270 52 admin
  "id": 1,
271 51 admin
  "edit_my_art_path": "http://www.3dcg-arts.net/my/arts/1/edit"
272 43 admin
}
273 2
</code></pre>