タグ付けされた質問 「http-response」

8
APIでHTTPステータスコード404を使用する場合
私はプロジェクトに取り組んでおり、職場の人々と約1時間以上議論した後です。スタック交換の人々が何を言うかを知ることにしました。 システム用のAPIを作成しています。組織のツリーまたは目標のツリーを返すクエリがあります。 組織のツリーは、ユーザーが存在する組織です。つまり、このツリーは常に存在する必要があります。組織では、目標ツリーが常に存在する必要があります。(それが引数の始まりです)。ツリーが存在しない場合、同僚はステータスコード200で応答するのが正しいと判断しました。その後、ツリーがないときにアプリケーションがバラバラになるため、コードを修正するように頼み始めました。 私は炎と怒りをspareしまないようにします。 ツリーがない場合、404エラーを発生させることを提案しました。少なくとも何かが間違っていることを知らせてくれるでしょう。200を使用する場合、エラーを処理するために成功コールバックの応答に特別なチェックを追加する必要があります。オブジェクトを受け取ることを期待していますが、何も見つからないため、実際には空の応答を受け取る場合があります。応答を404としてマークするのはまったく公平に思えます。その後、戦争が始まり、HTTPステータスコードスキーマを理解していないというメッセージを受け取りました。だから私はここにいて、この場合の404の何が問題なのか尋ねていますか?「何も見つからなかったので、200を返すのは正しい」という議論もありました。ツリーは常に存在する必要があるため、これは間違っていると思います。何も見つからず、何かを期待している場合は、404になります。 詳細、 取得したURLを追加するのを忘れました。 組織 /OrgTree/Get 目標 /GoalTree/GetByDate?versionDate=... /GoalTree/GetById?versionId=... 私の間違い、両方のパラメーターが必要です。日付に解析できるversionDateが提供されている場合、終了リビジョンを返します。過去に何かを入力すると、最初のリビジョンが返されます。IDが存在しないIDである場合、200の空の応答を返すと思われます。 追加 また、この問題に対する最善の答えは、組織の作成時にデフォルトのオブジェクトを作成することであり、ツリーを持たないことは有効なケースではなく、未定義の動作と見なすべきです。両方のツリーがなければアカウントを使用する方法はありません。そのため、それらは常に存在する必要があります。 また、私はこれをリンクしました(1つは似ていますが、見つけることができません) http://viswaug.files.wordpress.com/2008/11/http-headers-status1.png

6
「結果なし」はRESTfulレスポンスのエラーになりますか?
例について説明します 。パン屋のAPIの作成を開始します。APIを使用すると、ユーザーはを使用して自家製ミントチョコレートチップクッキーなどのベーキング製品のカタログを検索できますapi.examplebakery.com/search?q=.....。 誰かがこれを使って名前の付いた製品を探しますが、pineapple-banana flavoured cookies明らかに結果が見つかりません。 これはエラーとして返されるべきですか?検索は失敗せず、APIが検索し、Cookieが見つからないという結論に達しました。404APIが実際に見つかったため、APIはを返すべきではありません。

11
クエリが存在しないオブジェクトを参照していることを示すために、REST APIは500 Internal Server Errorを返す必要がありますか?
私は、多数のIoTデバイスのデータを処理するサーバーに常駐するREST APIを使用しています。 私のタスクは、APIを使用してサーバーにクエリを実行し、デバイスに関する特定のパフォーマンス情報を収集することです。 ある例では、利用可能なデバイスとそれに対応する識別子のリストを取得し、その後、それらの識別子(GUID)を使用してサーバーに詳細を照会します。 サーバーは500 Internal Server Error、これらのIDのいずれかでクエリを返しています。私のアプリケーションでは、例外がスローされ、エラーの詳細が表示されません。Postmanで応答をより詳しく調べると、サーバーが以下を含む本文でJSONを返していることがわかります。 errorMessage: "This ID does not exist"。 サーバーが最初にIDを提供したという事実は無視してください。これは開発者にとっては別の問題です。 REST API 500 Internal Server Errorは、クエリが存在しないオブジェクトを参照していることを報告するためにを返す必要がありますか?私の考えでは、HTTP応答コードは、APIの内部メカニズムではなく、REST呼び出しのステータスを厳密に参照する必要があります。私が期待する200 OK問題のAPIに独自のだろうエラーと説明を含む応答、と。 REST呼び出しがどのように構成されているかによって、期待に潜在的な違いがあることがわかりました。 これらの例を考慮してください: http://example.com/restapi/deviceinfo?id=123 http://example.com/restapi/device/123/info 前者の場合、デバイスIDはGET変数として渡されます。404または500は、パス(/restapi/deviceinfo)が見つからないか、サーバーエラーになったことを示します。 2番目の場合、デバイスIDはURLの一部です。私はをよりよく理解しますが、404 Not Foundそれでもパスのどの部分が変数とエンドポイントとして解釈されるかに基づいて議論することができます。

2
RESTful APIのユーザー権限のレベル
インターネットで一番かわいい猫をランク付けしている会社があるとしましょう。 /cats/ユーザーに最新のかわいい猫を提供するリソースを提供します。 ユーザーは、支払いを行っていないか登録していない場合、上位3匹の猫のみを取得できます。337ドルを支払ってログインしている場合は上位10匹の猫、1337ドルを支払ってログインしている場合は上位100匹の猫。リクエストを行うときに「ユーザーID」があります。 要するに、消費者は/cats/「ユーザーランキング」に基づいて異なる数の猫を取得します。消費側にはユーザー識別子がありますが、消費側にはユーザーレベルの明示的な表現はありません。リクエストを行うときにサブスクリプションをアップグレードできることをユーザーに通知したいと思います。つまり、3匹の猫と3匹の猫しか提供していないため、3匹の猫を区別する必要があります。これは、ユーザーレベルで許可されているためです。 消費者が十分な特権を持っていないためにリソースを制限し、それが制限されていることを区別するためのベストプラクティスは何ですか? クライアントは、ランキングをアップグレードできるかどうかをどのように知っていますか?それはので、彼らは限られたリソースを持っている彼らは権限がありません。ここでのベストプラクティスは何ですか? これは実際のケースを大幅に単純化したものであることに注意してください。また、単に明確にするために-読んでいただければ幸いです。 更新: 検討したオプションは次のとおりです。 クライアントに一度ユーザー権限オブジェクトを保存し、アカウントのログインまたはアップグレードが実行されたときにのみ照会します。 null存在することを示す値をJSONで渡しますが、実際には何も転送されませんでした。したがって、3匹の猫を持つユーザーの場合、10匹の猫は["Garfield","Sylvester","Puss in Boots",null*7] リソース許可ペアを渡す {cats:["Whiskers","Fluffy","Socks"],authCount:3} 一番かわいい猫を可能な限り最良の方法で配達するために、初めてこれを正しく行いたいと思います。
23 rest  http  url  http-response 

2
CookieベースのWeb認証のベストプラクティスは何ですか?
私はCGIとPythonを使用して小さなサイドプロジェクトに取り組んでいます(スケーラビリティは問題ではなく、非常にシンプルなシステムである必要があります)。 クッキーを使用して認証を実装することを考えていて、確立されたベストプラクティスがあるかどうか疑問に思っていました。 ユーザーが正常に認証されたら、Cookieを使用して、誰がログオンしているかを判断します。ベストプラクティスによれば、このようなCookieには何を保存する必要がありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.