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

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

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

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

Q&A

解決済

4回答

16578閲覧

apiを叩くさいのpostとgetにつきまして

退会済みユーザー

退会済みユーザー

総合スコア0

API

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

0グッド

2クリップ

投稿2017/04/18 16:17

編集2017/04/18 16:18

仕組みがよくわからないので、教えていただけると幸いです。

よく「apiを叩く」と言いますが、
データをサーバーに保存する際にもajaxなどで、
urlを'/menu/list'などとして、jsonデータをpostすると思うのですが、
この時は、サーバーサイドでは/menu/listをgetしているのでしょうか?

また、データを取得する際にgetを使う際は、
サーバーサイドではpostして、フロントサイドでgetするということなのでしょうか?

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

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

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

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

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

guest

回答4

0

かなり誤って覚えているようです。
RFCで定義を確認してください。

投稿2017/04/18 16:29

yona

総合スコア18155

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

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

0

GETもPOSTもデータをクライアント側からサーバー側に
送る際のやり方のことで、英語自体の意味は考えない方がいい。
で、HTMLのFORMタグのMETHODで指定するのがそれですね。
地味ですが、CGIの基礎から勉強するといいと思います。

投稿2017/04/18 21:24

takasima20

総合スコア7458

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

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

0

ベストアンサー

GET も POST も、本来は HTTP(S) におけるコマンドのようなものです。

GET は「URL で要求したコンテンツを取得する」で、
POST は「URL で指定したコンテンツにデータを送る」というのが本来の役割です。
※POST は必ずしも結果を返すとは限らない

GET のように、URL にパラメータ(?以降の文字列)を与えて投げた場合、サーバ側でパラメータを解釈して適切なコンテンツを選んで返しています。ただし URL に記述できる文字の種別や長さの制限があるため、あまり大量のパラメータを付けることはできませんし、バイナリデータ(ファイルなど)を送るのにも適していません。
そのような場合は POST を使います。

ajax では、GET なり POST なりでサーバに要求を行って結果を返してもらい、それを受け取った側で加工して画面に反映させる、わけです。要求する側(クライアント)と返却する側(サーバ)とでインタフェースを合わせておかねばならないのは当然のことですね。

※サーバ側からみると、GET で来ても POST で来ても、パラメータをどう取り出すかの違いくらいですので、そこだけ別々に処理して実処理は共通、なんてのはよくありますが、それは「GET で要求されたリクエストを POST で処理する」ではないです。

投稿2017/04/19 01:42

tacsheaven

総合スコア13703

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

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

退会済みユーザー

退会済みユーザー

2017/04/19 01:52

ありがとうございます。 とても参考になりました。
guest

0

urlを'/menu/list'などとして、jsonデータをpostすると思うのですが、この時は、サーバーサイドでは/menu/listをgetしているのでしょうか?

そのようなことはあり得ません。

クライアントから POST 要求をかければサーバーでは POST 要求として受けて処置します。JSON データを送信する場合はコンテンツの中に含めて送信します。

また、データを取得する際にgetを使う際は、サーバーサイドではpostして、フロントサイドでgetするということなのでしょうか?

それもあり得ません。

クライアントから GET 要求をかければサーバーでは GET 要求として受けて処置します。クライアントから何らかの情報をサーバーに送信する必要がある場合はクエリ文字列として URL に含めて送信します。

Ajax を使っての GET と POST の使い分けは以下の記事のようにするのが普通だと思います。

jQuery - AJAX get() and post() Methods
https://www.w3schools.com/jquery/jquery_ajax_get_post.asp

抜粋すると、

• GET - Requests data from a specified resource
• POST - Submits data to be processed to a specified resource

ということです。

具体例は、Web API 側に WCF をクライアント側に jQuery Ajax を使用した場合ですが、以下の記事の「(3) WCF AJAX サービスへのアクセス」というところを見てください。

WCF と jQuery AJAX
http://surferonwww.info/BlogEngine/post/2015/10/15/wcf-and-jquery-ajax.aspx

なお、今回の質問とは直接関係ないことですが、JSON サービスを GET で要求するのは潜在的なセキュリティ上のリスクがあるそうです。詳しくは上に紹介した記事の「(2) AJAX 互換サービス コントラクトの作成」の最後の方に書いてありますので、興味があれば読んでください。

投稿2017/04/19 00:51

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問