タグ付けされた質問 「rest」

REST(Representational State Transfer)は、World Wide Webなどの分散ハイパーメディアシステム用のソフトウェアアーキテクチャのスタイルです。異種システム間で統一されたインターフェースを持つことから生じるサーバーからのクライアントの本質的な分離により、SOAPなどのRPCアーキテクチャーに比べて人気が高まっています。

5
Spring RestTemplateリクエストに「Accept:」ヘッダーを設定する方法は?
Accept:Springを使用して作成するリクエストでの値を設定したいRestTemplate。 これが私のSpringリクエスト処理コードです @RequestMapping( value= "/uom_matrix_save_or_edit", method = RequestMethod.POST, produces="application/json" ) public @ResponseBody ModelMap uomMatrixSaveOrEdit( ModelMap model, @RequestParam("parentId") String parentId ){ model.addAttribute("attributeValues",parentId); return model; } ここに私のJava RESTクライアントがあります: public void post(){ MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>(); params.add("parentId", "parentId"); String result = rest.postForObject( url, params, String.class) ; System.out.println(result); } これは私にとってはうまくいきます。サーバー側からJSON文字列を取得します。 私の質問は:私は指定することができますどのようにAccept:ヘッダ(例えばapplication/json、application/xml(例えば、...)とリクエストメソッドGET、POST、...)私はRestTemplateを使うのか?

26
ASP.net Core WebAPIでCORSを有効にする方法
私がやろうとしていること Azure Free PlanでホストされているバックエンドASP.Net Core Web APIを持っています(ソースコード:https : //github.com/killerrin/Portfolio-Backend)。 また、そのAPIを使用したいクライアントWebサイトもあります。クライアントアプリケーションは、Azureではホストされませんが、Github Pagesまたは私がアクセスできる別のWebホスティングサービスでホストされます。このため、ドメイン名は整列しません。 これを調べてみると、Web API側でCORSを有効にする必要がありますが、今では数時間にわたってほぼすべてを試してみましたが、機能しません。 クライアントの設定方法 React.jsで記述された単純なクライアント。JqueryでAJAXを介してAPIを呼び出しています。Reactサイトは機能しているので、そうではありません。Jquery API呼び出しは、試行1で確認したとおりに機能します。呼び出しを行う方法を次に示します var apiUrl = "http://andrewgodfroyportfolioapi.azurewebsites.net/api/Authentication"; //alert(username + "|" + password + "|" + apiUrl); $.ajax({ url: apiUrl, type: "POST", data: { username: username, password: password }, contentType: "application/json; charset=utf-8", dataType: "json", success: function (response) { …

5
モバイルアプリケーション用のAPIの作成-認証と承認
概観 アプリケーション用の(REST)APIを作成しようとしています。最初の/主な目的は、モバイルアプリ(iPhone、Android、Symbianなど)による使用です。私は(他の実装を研究することにより)WebベースのAPIの認証と承認のさまざまなメカニズムを調べてきました。基本的な概念のほとんどに頭を抱えていますが、まだいくつかの領域でガイダンスを探しています。私がやりたい最後のことは、ホイールを再発明することですが、自分の基準に合う標準的な解決策を見つけることができません(ただし、自分の基準を誤解しているので、遠慮なく批評してください)。さらに、私はそれを消費するすべてのプラットフォーム/アプリケーションでAPIが同じであることを望みます。 oAuth それが提供される最初のソリューションである可能性が高いことを知っているので、私は先に進んでoAuthへの反対を捨てます。モバイルアプリケーション(または、より具体的には非Webアプリケーション)の場合、認証のためにアプリケーションを(Webブラウザに移動するために)残すのは間違っているように見えます。さらに、ブラウザーがコールバックをアプリケーション(特にクロスプラットフォーム)に返す方法はありません(私は承知しています)。私はそれを行ういくつかのアプリを知っていますが、それは単に間違っていると感じて、アプリケーションUXを中断させます。 必要条件 ユーザーはユーザー名/パスワードをアプリケーションに入力します。 すべてのAPI呼び出しは、呼び出し元のアプリケーションによって識別されます。 オーバーヘッドは最小限に抑えられ、認証の側面は開発者にとって直感的です。 このメカニズムは、エンドユーザー(ログイン資格情報が公開されない)と開発者(アプリケーション資格情報が公開されない)の両方に対して安全です。 可能であれば、httpsは必要ありません(決してハード要件ではありません)。 実装に関する私の現在の考え 外部の開発者がAPIアカウントをリクエストします。彼らはapikeyとapisecretを受け取ります。すべてのリクエストには、少なくとも3つのパラメータが必要です。 apikey-登録時に開発者に与えられる タイムスタンプ-特定のapikeyの各メッセージの一意の識別子としても機能します hash-タイムスタンプのハッシュ+ apisecret apikeyは、リクエストを発行するアプリケーションを識別するために必要です。タイムスタンプはoauth_nonceと同様に機能し、リプレイ攻撃を回避/軽減します。ハッシュは、リクエストが実際に特定のAPIキーの所有者から発行されたことを確認します。 認証済みのリクエスト(ユーザーに代わって実行されるリクエスト)の場合、私はまだ、access_tokenルートを使用するか、ユーザー名とパスワードのハッシュコンボを使用するかを決めていません。いずれにしても、ある時点でユーザー名とパスワードの組み合わせが必要になります。そのため、複数の情報(apikey、apisecret、timestamp)+パスワードのハッシュが使用されます。 この点についてフィードバックをいただければ幸いです。 ちなみに、私はパスワードをハッシュせずにシステムに保存しないので、最初にパスワードをハッシュする必要があります。 結論 ちなみに、これは、一般にAPIを構築/構造化する方法の要求ではなく、アプリケーション内からのみ認証と承認を処理する方法だけです。 ランダムな考え/ボーナスの質問 リクエストの一部としてAPIキーのみを必要とするAPIの場合、APIキーの所有者以外の誰かがAPIキーを(平文で送信されるため)表示し、過度のリクエストを行って使用制限を超えてしまうことを防ぐにはどうすればよいですか?多分私はこれを考えすぎているかもしれませんが、リクエストがapikey所有者に対して検証されたことを認証するための何かがあるべきではありませんか?私の場合、それはapisecretの目的でした。ハッシュ化されない限り、表示/送信されることはありません。 ハッシュといえば、md5対hmac-sha1はどうですか?すべての値が十分に長いデータ(つまりapisecret)でハッシュされる場合、それは本当に重要ですか? 私は以前、ユーザーごとのソルトをユーザーのパスワードハッシュに追加することを検討していました。それを行うとしたら、アプリケーションは、使用されるソルトを知らなくても、一致するハッシュを作成できるでしょうか?

14
Node.js内でリモートREST呼び出しを行う方法は?CURL?
Node.js、作るために子プロセスを使用するよりも、他のCURLのコールを、リモートサーバへのCURLの呼び出しにする方法があるRESTの APIを、戻りデータを取得するには? また、リクエストヘッダーをリモートREST呼び出しに設定し、GET(またはPOST)でクエリ文字列も設定する必要があります。 私はこれを見つけます:http : //blog.nodejitsu.com/jsdom-jquery-in-5-lines-on-nodejs ただし、クエリ文字列をPOSTする方法は示されていません。
189 rest  curl  node.js 

16
file_get_contents():SSL操作がコード1で失敗し、暗号を有効にできませんでした
私はサーバーで作成したPHPページからこの特定のRESTサービスにアクセスしようとしています。問題をこれら2つの行に絞り込みました。したがって、私のPHPページは次のようになります。 <?php $response = file_get_contents("https://maps.co.weber.ut.us/arcgis/rest/services/SDE_composite_locator/GeocodeServer/findAddressCandidates?Street=&SingleLine=3042+N+1050+W&outFields=*&outSR=102100&searchExtent=&f=json"); echo $response; ?> ページは2行目で終了し、次のエラーが発生します。 警告:file_get_contents():SSL操作がコード1で失敗しました。OpenSSLエラーメッセージ:error:14090086:SSLルーチン:SSL3_GET_SERVER_CERTIFICATE:certificate verifyが... phpの2行目で失敗しました 警告:file_get_contents():2行目の... phpで暗号を有効にできませんでした 警告:file_get_contents(https://maps.co.weber.ut.us/arcgis/rest/services/SDE_composite_locator/GeocodeServer/findAddressCandidates?Street=&SingleLine=3042+N+1050+W&outFields=*&outSR=102100&searchExtent=&f=json):ストリームを開けませんでした:2行目の... phpで操作が失敗しました Gentooサーバーを使用しています。最近、PHPバージョン5.6にアップグレードしました。この問題が発生したのはアップグレード後です。 私のようなアドレスを使用してRESTサービスを交換するとき、私が見つかりましたhttps://www.google.com。私のページは問題なく動作します。 以前の試みでは“verify_peer”=>false、ここで説明するように、を設定し、それを引数としてfile_get_contentsに渡しました: file_get_contents ignoring verify_peer => false? しかし、筆者が指摘したように。違いはありませんでした。 サーバー管理者の1人に、php.iniファイルに次の行が存在するかどうかを尋ねました。 extension = php_openssl.dll allow_url_fopen =オン Gentooを使用しているため、ビルド時にopensslがコンパイルされると彼は言った。php.iniファイルでは設定されていません。 それallow_url_fopenが機能していることも確認しました。この問題の特殊な性質のため。助けになる情報がたくさん見つかりません。このようなものに出くわしたことがありますか?ありがとう。

9
Springでは、オプションのパス変数を作成できますか?
Spring 3.0では、オプションのパス変数を使用できますか? 例えば @RequestMapping(value = "/json/{type}", method = RequestMethod.GET) public @ResponseBody TestBean testAjax( HttpServletRequest req, @PathVariable String type, @RequestParam("track") String track) { return new TestBean(); } ここで、同じメソッドを呼び出す/json/abcか/json、呼び出します。 明らかな回避策の1つtypeは、要求パラメーターとして宣言します。 @RequestMapping(value = "/json", method = RequestMethod.GET) public @ResponseBody TestBean testAjax( HttpServletRequest req, @RequestParam(value = "type", required = false) String type, @RequestParam("track") String …
187 spring  rest 

10
nodejsとexpressで作成されたREST APIで応答ステータスとJSONコンテンツを設定する適切な方法
Nodejsをいじって、小さなREST APIを作成して表現しています。私の質問は、コードのステータスと応答データを設定するための良い方法/最良の方法は何ですか? 少しのコードで説明しましょう(サーバーを起動するために必要なノードとエクスプレスコードは記述しません。関係するルーターメソッドのみです): router.get('/users/:id', function(req, res, next) { var user = users.getUserById(req.params.id); res.json(user); }); exports.getUserById = function(id) { for (var i = 0; i < users.length; i++) { if (users[i].id == id) return users[i]; } }; 以下のコードは完全に機能し、Postmanでリクエストを送信すると、次の結果が得られます。 ご覧のように、ステータスは200で、これは問題ありません。しかし、これはこれを行うための最良の方法ですか?返されたJSONだけでなく、自分でステータスを設定する必要がある場合はありますか?それとも、常にExpressによって処理されますか? たとえば、簡単なテストを行い、上記のgetメソッドをわずかに変更しました。 router.get('/users/:id', function(req, res, next) { var user = users.getUserById(req.params.id); if (user …
186 node.js  rest  http  express 

9
HTTPの「406-Not Acceptable Response」とは何ですか?
Ruby on Railsアプリケーションで、POSTMAN RESTクライアントを介してBase64形式で画像をアップロードしようとしました。画像をPOSTすると、406 Not Acceptable Responseが返されます。データベースを確認したところ、画像があり、正常に保存されました。 このエラーの理由は何ですか、ヘッダーに指定する必要があるものはありますか? 私の要求: URL --- http://localhost:3000/exercises.json ヘッダ: Content-Type - application/json 生データ: { "exercise": { "subbodypart_ids": [ "1", "2" ], "name": "Exercise14" }, "image_file_name": "Pressurebar Above.jpg", "image":"******base64 Format*******" }

11
安全なWebサービス:REST over HTTPS vs SOAP + WS-Security。どちらが良いですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 この質問を改善する 私は決してセキュリティの専門家ではありませんが、RESTスタイルのWebサービスを作成することを好みます。 安全に送信するデータを必要とする新しいサービスを作成する場合。どのアプローチがより安全であるかについての議論に入りました-HTTPSを使用したRESTまたはWS-Securityを使用したSOAP WS。 すべてのWebサービス呼び出しにHTTPSを使用でき、このアプローチは安全であるという印象を受けています。私がそれを見る方法は、「HTTPSが銀行や金融のWebサイトに十分であるなら、私には十分です」です。繰り返しますが、私はこの分野の専門家ではありませんが、これらの人々はこの問題についてかなり熱心に考え、HTTPSに慣れていると思います。 同僚は反対し、SOAPとWS-Securityが唯一の方法であると述べています。 Webはこれの全面的なようです。 たぶん、ここのコミュニティはそれぞれの長所と短所を比較検討できるでしょうか?ありがとう!

5
REST API認証
サーバー上でホストされるアプリケーションを構築しています。アプリケーション用のAPIを構築して、任意のプラットフォーム(Webアプリ、モバイルアプリ)とのやり取りを容易にしたいと考えています。私が理解していないのは、REST APIを使用するときに、ユーザーを認証する方法です。 たとえば、ユーザーがログインした後、フォーラムトピックを作成したいとします。ユーザーがすでにログインしていることをどのようにして知ることができますか?
181 api  rest 

3
REST APIログインパターン
私はREST APIを作成しています。動詞ではなく名詞を使用し、URLに焼き付けられたAPIバージョン、コレクションごとに2つのAPIパス、GET POST PUT DELETEの使用法などを使用して、apigeeの提案に厳密に従っています。 ログインシステムに取り組んでいますが、ユーザーにログインするための適切なREST方法がわかりません。この時点ではセキュリティに取り組んでいません。ログインパターンまたはログインフローのみです。(後で、HMACなどを使用して2ステップのoAuthを追加します) 可能なオプション のようなものへのPOST https://api...com/v1/login.json のようなものへのPUT https://api...com/v1/users.json 私が持っていない何か... ユーザーのログインに適切なRESTスタイルは何ですか?

2
REST Complex / Composite / Nested Resources [終了]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 2年前休業。 この質問を改善する RESTベースのAPIで概念に対処するための最良の方法に頭を抱えようとしています。他のリソースを含まないフラットリソースは問題ありません。問題が発生しているのは複雑なリソースです。 たとえば、漫画のリソースがあります。ComicBookその上のプロパティのすべての種類などを有しているauthor、issue number、date、など 漫画本にも1..nカバーのリストがあります。これらのカバーは複雑なオブジェクトです。これらには、カバーに関する多くの情報が含まれています。アーティスト、日付、さらにはBase 64でエンコードされたカバーの画像です。 以下のためGETにComicBook私は漫画を返し、そのbase64'ed画像を含むカバーのすべての可能性があります。それはおそらく単一の漫画を得るために大したことではありません。しかし、システム内のすべてのコミックを表にリストしたいクライアントアプリを作成しているとします。 テーブルにはComicBookリソースのいくつかのプロパティが含まれますが、テーブル内のすべてのカバーを表示する必要はありません。1000冊のコミックを返し、それぞれに複数のカバーがあると、回線上に途方もなく大量のデータが送られてきます。この場合、エンドユーザーには不要なデータです。 私の本能はCover、リソースを作成し、ComicBookカバーを含めることです。これCoverがURIです。GETコミック本では今では機能しますが、巨大なCoverリソースの代わりに、各カバーのURIを返信し、クライアントは必要に応じてカバーリソースを取得できます。 今、私は新しい漫画を作ることに問題があります。確かに、を作成するときに少なくとも1つのカバーを作成する必要がありますComic。実際、これはおそらくビジネスルールです。 だから私は行き詰まっています、私は最初にを送信してCoverそのカバーのURIを取得し、次にリストにそのURIを付けてを送信することによってクライアントにビジネスルールを適用するよう強制POSTするComicBookか、またはPOSTon ComicBookはそれが吐き出すのとは異なる見た目のリソースを受け取りますでる。着信リソースPOSTとはGET、発信深いコピー、あるGETsが依存リソースへの参照が含まれています。 Cover私はいくつかのケースでは、アドレスカバー方向にしたいと思いクライアントとして確信しているので、リソースがどのような場合には、おそらく必要があります。そのため、依存するリソースのサイズに関係なく、問題は一般的な形で存在します。一般に、クライアントにそれらのリソースがどのように構成されているかを「知る」ことを強制せずに、複雑なリソースをどのように処理しますか?

3
URLマトリックスパラメーターとクエリパラメーター
私のURLでマトリックスまたはクエリパラメーターを使用するかどうか疑問に思っています。そのトピックについての古い議論は満足のいくものではなかった。 例 クエリパラメータを含む URL:http://some.where/thing?paramA = 1&paramB = 6542 マトリックスパラメータを含む URL:http://some.where/thing; paramA = 1; paramB = 6542 一見すると、マトリックスparamsには利点しかないようです。 より読みやすい XMLドキュメントでの「&」のエンコードとデコードは不要 「?」を含むURL 多くの場合、キャッシュされません。行列パラメーターを持つURLがキャッシュされます 行列パラメータはパスのどこにでも出現でき、その終わりに限定されません 行列パラメーターは複数の値を持つことができます: paramA=val1,val2 ただし、欠点もあります。 JAX-RSのような少数のフレームワークのみがマトリックスパラメーターをサポートします ブラウザがGETを介してフォームを送信すると、パラメータはクエリパラメータになります。そのため、同じタスクに対して2種類のパラメーターになります。RESTサービスのユーザーを混乱させず、サービスの開発者の労力を制限しないために、この領域では、常にクエリパラメーターを使用する方が簡単です。 サービスの開発者はマトリックスパラメータをサポートするフレームワークを選択できるため、唯一の欠点は、ブラウザがデフォルトでクエリパラメータを作成することです。 他に欠点はありますか?あなたならどうしますか?
176 http  url  rest  parameters  jax-rs 


10
Spring Boot RESTサービスの例外処理
大規模なRESTサービスサーバーをセットアップしようとしています。Spring Boot 1.2.1 Spring 4.1.5、およびJava 8を使用しています。コントローラーは@RestControllerと標準の@RequestMappingアノテーションを実装しています。 私の問題は、Spring Bootがコントローラー例外のデフォルトのリダイレクトをに設定することです/error。ドキュメントから: Spring Bootはデフォルトで/ errorマッピングを提供し、すべてのエラーを賢明な方法で処理し、サーブレットコンテナーに「グローバル」エラーページとして登録されます。 Node.jsを使用してRESTアプリケーションを何年も作成してきた私にとって、これは賢明ではありません。サービスエンドポイントが生成する例外は、応答で返す必要があります。AngularまたはJQuery SPAコンシューマーである可能性が最も高いものにリダイレクトを送信する理由を理解できません。このコンシューマーは、回答を探しているだけで、リダイレクトに対してアクションを実行できないか、実行できません。 私がやりたいことは、例外を受け取ることができるグローバルエラーハンドラーをセットアップすることです-リクエストマッピングメソッドから意図的にスローされるか、Springによって自動生成され(リクエストパスシグネチャのハンドラーメソッドが見つからない場合は404)、 MVCリダイレクトなしのクライアントへの標準形式のエラー応答(400、500、503、404)。具体的には、エラーを取得し、UUIDを使用してNoSQLにログを記録してから、JSON本文のログエントリのUUIDを含む適切なHTTPエラーコードをクライアントに返します。 ドキュメントはこれを行う方法について曖昧でした。独自のErrorController実装を作成するか、何らかの方法でControllerAdviceを使用する必要があるように見えますが、私が見たすべての例には、応答を何らかのエラーマッピングに転送することが含まれているため、役に立ちません。他の例では、単に「Throwable」をリストしてすべてを取得するのではなく、処理するすべての例外タイプをリストする必要があることを示唆しています。 誰かが私が見逃したことを教えてもらえますか、またはNode.jsがより扱いやすいチェーンを提案することなく、これを行う方法について正しい方向を教えてくれますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.