Project

General

Profile

RestAPIv1 » History » Version 82

admin, 05/15/2014 01:33 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 79 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 81 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 72 admin
h5. 実行結果(例)
97 72 admin
98 37 admin
<pre><code class="json">
99 6 admin
[
100 6 admin
  {
101 6 admin
    "id": 1,
102 6 admin
    "title": "初音ミク・オン・ステージ",
103 6 admin
    "icon":
104 6 admin
    {
105 6 admin
      "128x128": "http://www.3dcg-arts.net/s3/art_icons/532/834d9539a9b9fae6acd9136e270b2e2ca94342e5e362c68018e97f543b150ab7/128x128.png",
106 6 admin
      "256x256": "http://www.3dcg-arts.net/s3/art_icons/532/e5c6e6d5513da17c9a608c5d61d7bb5f75b04612001dfc491b61b525150523dc/256x256.png"
107 6 admin
    }
108 6 admin
  }
109 6 admin
]
110 37 admin
</code></pre>
111 5 admin
112 68 admin
h2. 作品の投稿(API キーの発行が必要です)
113 2
114 4 admin
* HTTP メソッド
115 4 admin
** POST
116 2
* HTTP パス
117 31 admin
** http://api.3dcg-arts.net/api/v1/arts.json
118 2
119 2
h3. API 呼出
120 2
121 29 admin
|*引数名*|*引数値*|*説明*|*デフォルト*|*指定*|
122 2
|secret_access_key|文字列(SHA-512)|API キー|-|必須|
123 78 admin
|type|文字列|投稿形式(イメージ作品: <code>"i"</code> or ポリゴン作品: <code>"p"</code>)|-|必須|
124 75 admin
|content0[name]|文字列|投稿ファイル名|-|必須|
125 75 admin
|content0[data]|文字列|投稿ファイル(baes64 encode されたファイルバイナリ)|-|必須|
126 75 admin
|content1[name]|文字列|投稿ファイル名|-|任意|
127 75 admin
|content1[data]|文字列|投稿ファイル(baes64 encode されたファイルバイナリ)|-|任意(content1[name] が指定されている場合、必須)|
128 75 admin
|content2[name]|文字列|投稿ファイル名|-|任意|
129 75 admin
|content2[data]|文字列|投稿ファイル(baes64 encode されたファイルバイナリ)|-|任意(content2[name] が指定されている場合、必須)|
130 75 admin
|content3[name]|文字列|投稿ファイル名|-|任意|
131 75 admin
|content3[data]|文字列|投稿ファイル(baes64 encode されたファイルバイナリ)|-|任意(content3[name] が指定されている場合、必須)|
132 75 admin
|content4[name]|文字列|投稿ファイル名|-|任意|
133 75 admin
|content4[data]|文字列|投稿ファイル(baes64 encode されたファイルバイナリ)|-|任意(content4[name] が指定されている場合、必須)|
134 75 admin
|content5[name]|文字列|投稿ファイル名|-|任意|
135 75 admin
|content5[data]|文字列|投稿ファイル(baes64 encode されたファイルバイナリ)|-|任意(content5[name] が指定されている場合、必須)|
136 75 admin
|content6[name]|文字列|投稿ファイル名|-|任意|
137 75 admin
|content6[data]|文字列|投稿ファイル(baes64 encode されたファイルバイナリ)|-|任意(content6[name] が指定されている場合、必須)|
138 75 admin
|content7[name]|文字列|投稿ファイル名|-|任意|
139 75 admin
|content7[data]|文字列|投稿ファイル(baes64 encode されたファイルバイナリ)|-|任意(content7[name] が指定されている場合、必須)|
140 75 admin
|content8[name]|文字列|投稿ファイル名|-|任意|
141 75 admin
|content8[data]|文字列|投稿ファイル(baes64 encode されたファイルバイナリ)|-|任意(content8[name] が指定されている場合、必須)|
142 75 admin
|content9[name]|文字列|投稿ファイル名|-|任意|
143 75 admin
|content9[data]|文字列|投稿ファイル(baes64 encode されたファイルバイナリ)|-|任意(content9[name] が指定されている場合、必須)|
144 2
145 2
* *"イメージ作品を投稿する場合":http://www.3dcg-arts.net/my/arts/new*
146 78 admin
** type パラメータに文字 <code>"i"</code> を与えます。
147 53 admin
<pre>
148 57 admin
secret_access_key=<API キー>&type=i&content0[name]=example.jpg&content0[data]=<base64 encode されたファイルバイナリの文字列>
149 53 admin
</pre>
150 53 admin
151 2
* *"ポリゴン作品を投稿する場合":http://www.3dcg-arts.net/my/arts/new*
152 78 admin
** type パラメータに文字 <code>"p"</code> を与えます。
153 53 admin
<pre>
154 57 admin
secret_access_key=<API キー>&type=p&content0[name]=example.zip&content0[data]=<base64 encode されたファイルバイナリの文字列>
155 53 admin
</pre>
156 2
157 82 admin
* 投稿ファイルについて
158 82 admin
** 投稿ファイルは *"base64 encode":http://ja.wikipedia.org/wiki/Base64* された「ポリゴンファイル」「テクスチャファイル」「マテリアルファイル」の文字列を指定するか、
159 2
各ファイルをまとめた ZIP ファイル(圧縮ファイル)のバイナリを *"base64 encode":http://ja.wikipedia.org/wiki/Base64* した文字列を指定してください("投稿形式の詳細はこちら":http://help.3dcg-arts.net/projects/support/wiki/Specs)。
160 9 admin
161 9 admin
h3. API 応答
162 43 admin
163 2
h4. 失敗時
164 2
165 2
<pre><code class="json">
166 2
{
167 2
  "error_message": "[エラーメッセージ]"
168 2
}
169 2
</code></pre>
170 50 admin
171 50 admin
h5. HTTP ステータスコード
172 51 admin
173 2
失敗時のステータスコードは、次の通りです。
174 2
175 50 admin
|*コード*|*説明*|
176 51 admin
|400|API の引数に問題があります。|
177 58 admin
|403|API の引数に問題があります(アクセス権限が存在しない)。|
178 2
|500|API の実行に失敗しました(投稿作品の保存に失敗した or 投稿作品の変換に失敗した)。|
179 51 admin
180 51 admin
h4. 成功時
181 51 admin
182 2
<pre><code class="json">
183 2
{
184 52 admin
  "id": "[作品番号]",
185 2
  "edit_my_art_path": "[投稿作品の編集ページ]"
186 2
}
187 2
</code></pre>
188 11 admin
189 37 admin
h5. HTTP ステータスコード
190 51 admin
191 2
成功時のステータスコードは、次の通りです。
192 51 admin
193 51 admin
|*コード*|*説明*|
194 51 admin
|200|API の実行に成功しました。|
195 69 admin
|304|API の実行に成功しました(応答内容に差分が存在しない)。|
196 51 admin
197 51 admin
h4. API サンプル(イメージ作品の投稿)
198 51 admin
199 2
* HTTP メソッド
200 2
** POST
201 2
* HTTP パス
202 52 admin
** http://api.3dcg-arts.net/api/v1/arts.json
203 30 admin
204 64 admin
h5. サンプルプログラム(ruby 1.9/2.0/2.1)
205 59 admin
206 59 admin
<pre><code class="ruby">
207 59 admin
# -*- coding: utf-8 -*-
208 59 admin
require "base64"
209 59 admin
require "cgi"
210 59 admin
require "net/http"
211 59 admin
require "uri"
212 59 admin
213 62 admin
secret_access_key = "Write your secret access key" # NOTE: あなたの API キーをここに記述してください。
214 59 admin
215 59 admin
file_name =                                                   "example.jpg"
216 59 admin
file_data = ::CGI.escape ::Base64.strict_encode64 ::File.read "example.jpg"
217 59 admin
218 59 admin
uri = URI.parse "http://api.3dcg-arts.net/api/v1/arts.json"
219 59 admin
220 59 admin
::Net::HTTP.start uri.host, uri.port { | http |
221 59 admin
  response = http.post uri.path, "secret_access_key=#{ secret_access_key }&type=i&content0[name]=#{ file_name }&content0[data]=#{ file_data }"
222 59 admin
223 59 admin
  puts response.body
224 59 admin
}
225 59 admin
</code></pre>
226 59 admin
227 70 admin
h5. 実行結果(例)
228 59 admin
229 37 admin
<pre><code class="json">
230 36 admin
{
231 52 admin
  "id": 1,
232 2
  "edit_my_art_path": "http://www.3dcg-arts.net/my/arts/1/edit"
233 51 admin
}
234 37 admin
</code></pre>
235 30 admin
236 30 admin
h4. API サンプル(ポリゴン作品の投稿)
237 30 admin
238 30 admin
* HTTP メソッド
239 2
** POST
240 43 admin
* HTTP パス
241 52 admin
** http://api.3dcg-arts.net/api/v1/arts.json
242 43 admin
243 63 admin
h5. サンプルプログラム(ruby 1.9/2.0/2.1)
244 60 admin
245 60 admin
<pre><code class="ruby">
246 60 admin
# -*- coding: utf-8 -*-
247 60 admin
require "base64"
248 60 admin
require "cgi"
249 60 admin
require "net/http"
250 60 admin
require "uri"
251 60 admin
252 61 admin
secret_access_key = "Write your secret access key" # NOTE: あなたの API キーをここに記述してください。
253 60 admin
254 60 admin
file_name =                                                   "example.zip"
255 60 admin
file_data = ::CGI.escape ::Base64.strict_encode64 ::File.read "example.zip"
256 60 admin
257 60 admin
uri = URI.parse "http://api.3dcg-arts.net/api/v1/arts.json"
258 60 admin
259 60 admin
::Net::HTTP.start uri.host, uri.port { | http |
260 60 admin
  response = http.post uri.path, "secret_access_key=#{ secret_access_key }&type=p&content0[name]=#{ file_name }&content0[data]=#{ file_data }"
261 60 admin
262 60 admin
  puts response.body
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>