質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

3回答

1401閲覧

サーバー上の別ユーザーのファイル処理でのHTTPステータスコード

koh1

総合スコア12

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

1クリップ

投稿2018/01/13 11:20

編集2018/01/14 09:11

Web API において、下記の場合はHTTPステータスコードは何を返すのが
適切と考えられますでしょうか。

###前提
・ユーザーA・Bの2人がおり、2人の権限は同等のもの。
・ユーザーAがAPIのサーバーに あるファイルをアップロード済み。
・ユーザーBがAPIの処理を呼び出し、アップロードされたファイルの解析・結果のDBへの登録が行われる。

###質問
ユーザーBのAPI呼び出しで、アップロードされたファイルの解析時に
不正なファイル形式(内容が不正)とする場合、返すべきHTTPステータスコードは何が適切と思われますでしょうか。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2018/01/13 11:28

そもそも論として、「不適当なファイルをAがアップロードしようとした時点でエラーにする」という設計のほうが自然ではないのかと思うのですが、そうできない理由はありますでしょうか。
koh1

2018/01/13 11:34

ありがとうございます。Aによるアップロードというのが、FTPでのアップ(ミラーリングによる)を想定しており、そこに処理は入れられない状況なのです。
guest

回答3

0

ベストアンサー

「不適切なファイルがアップロードされている」ということはつまりサーバの状態の不整合なので、意味合い的には500 Internal Server Errorが適当かなと思います。

ただし、APIレスポンスとして500を返すのは本物のサーバエラーと区別がつかなくなるので、実用的には200を返して、中身で状況を知らせるという方がいいかもしれません。


そもそもの設計として、(何か理由があるのかもしれませんが)「AさんがFTPなどで上げる」→「Bさんが読み込みの指示をする」という2ステップを取るのが冗長な気もします。自分で実装するのなら、「AさんがFTPなどで上げる」→「それをcronで読み取って自動登録」のようなフローで考えます。

投稿2018/01/13 12:11

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

200では?
HTTPプロトコル的には何の問題も無いので。

HTTPより上位のメッセージでエラーを返すべきと思います。

投稿2018/01/13 11:45

otn

総合スコア84557

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ご回答いただいた方々、ありがとうございました。
今回の場合、Bのリクエスト自体は正常なのでステータスコードは200で、ボディに情報を入れて返そうと思います。

処理の流れ上、400または500のステータスコードが返ることがない状況が最初気になりましたが、
ファイルのアップがWebAPIであればそこで400を返すところ、FTPでのアップのため400を返す機会がないだけ、
ということで落ち着きそうです。

投稿2018/01/14 04:27

編集2018/01/14 09:00
koh1

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問