timeriver / trg_api

0 stars 0 forks source link

Postman Assignments for QA and Manager 2: Use Postman for testing - GET, POST, PUT, DELETE #40

Closed writerity-marina-funatsu closed 1 month ago

writerity-marina-funatsu commented 1 month ago

Assignment 1: Basic Request/基本的なリクエスト1 - GET

postへAPI Requestを送信し、Postすべての情報をGETしてください。 Request内容(URL)と、Bodyの内容をスクリーンショットで共有してください。

Image

Assignment 2: Basic Request/基本的なリクエスト2 - GET

User id=1のpostsをすべてGETしてください。 Request内容(URL)と、Bodyの内容をスクリーンショットで共有してください。

Image

 返ってきたステータス:200 OK  (2)の回答:指定通りのレスポンスが返っている。

Assignment 3: Basic Request/基本的なリクエスト3 - POST

POSTメソッドを使い、新しいポストを作成してください。 (内容は何でもかまいません)

Image

 返ってきたステータス:201Created  (2)の回答:新しいリソースが正常に追加されている。

Assignment 4: Basic Request/基本的なリクエスト4 - PUT

PUTメソッドを使い、comment id = 1のコメントの内容を更新してください。 (内容は何でも構いません。)

Image

 返ってきたステータス:200 OK  (2)の回答:リソースが正常に更新できている。

Assignment 5: Basic Request/基本的なリクエスト5 - DELETE

DELETEメソッドを使い、postsのうちid = 2のポストを削除してください。

Image

 返ってきたステータス:200 OK  (2)の回答:指定したリソースが正常に削除できている

writerity-marina-funatsu commented 1 month ago

@writerity-mami-asakura

お疲れ様です!お手すきでレビューをお願いします。

腑に落ちていない点があるため質問させてくださいm

PUTメソッドを使い、comment id = 1のポストのタイトルと内容を更新してください。 DELETEメソッドを使い、post id = 2のポストを削除してください。

このcomment id, post id というのは最初はそういう名前のパラメーターがあるのかなと思ったのですが、https://my-json-server.typicode.com/timeriver/trg_api を参照する感じそんなものはなさそうなので「commentのなかのid=1のやつ、ってことね」と理解しました。 ここまでは合っているでしょうか?

で、最初はパラメーターにid=1を指定したうえでリクエストボディに指示内容を書き込んでいたんですが、何度調整しても404になるので諦めてDeepesh-sanのチケットをカンニングしたところ、 リクエストURL末尾に/1とつけていたのでフーン、、、と思い模倣したらできました。 「id=nのものについてリクエストしたければURL末尾に/nをつける」と機械的に覚えていれば応用できそうでしょうか?

あと、

PUTメソッドを使い、comment id = 1のポストのタイトルと内容を更新してください。

なんですけど、タイトルと内容ってどれ?となり内容はbodyだろうなと空気読めたんですが、タイトル=postIdなのか?(てかそもそもpostIdとidは何が違うの?) というのはいまいちピンとこずでした。こちらどこかを見れば明確に分かりますか?

まったく急ぎません🙇よろしくお願いいたします。

writerity-mami-asakura commented 1 month ago

@writerity-marina-funatsu

色々考えながらやってくださっていて素晴らしいです! 👏 基本的なリクエストすべてできています。チケットクローズしていただいて大丈夫です。

下記に質問の回答を記入します。

このcomment id, post id というのは最初はそういう名前のパラメーターがあるのかなと思ったのですが、https://my-json-server.typicode.com/timeriver/trg_api を参照する感じそんなものはなさそうなので「commentのなかのid=1のやつ、ってことね」と理解しました。

あっています!

「id=nのものについてリクエストしたければURL末尾に/nをつける」と機械的に覚えていれば応用できそうでしょうか?

パラメータのリクエストの方法は色々なのですが、多くの場合は基本的にこれで行けると思います。

たとえば、AXISで案件とってくるときは下記のURLだと思います。26459がIDなので、この場合は”id=nのものについてリクエストしたければURL末尾に/nをつける”に当てはまってますね。 https://develop.axis-sacbms.com/projects/26459

他のAXISの例をとっても、商材もこのURLでとってきてました。Productsをリクエストするときは、URL/products/idでとってくるようにAPIが設計されているということですね。 https://develop.axis-sacbms.com/products/1133/edit

APIに対してどうリクエストしたらいいか?はLaravelのラーニングでAPIを作る時に扱うので、そちらに入るとより理解が深まると思います!

なんですけど、タイトルと内容ってどれ?となり内容はbodyだろうなと空気読めたんですが、タイトル=postIdなのか?(てかそもそもpostIdとidは何が違うの?) というのはいまいちピンとこずでした。こちらどこかを見れば明確に分かりますか?

これ問題文、おおもとのチケットから取ってきてますかね?それとも誰かのチケットからですかね? コメントにタイトルは無いので、誰かから指摘を受けて3月ごろ問題文編集したはず。。、、 わかりづらくなってしまいすみませんが、こちらご覧の通りコメントにタイトルはございません!

てかそもそもpostIdとidは何が違うの?

Commentテーブルの中にデータが入っているのだと思っていただくとわかりやすいかなと思います。 Commentにおけるidは、Commentを識別するためのIDですね。 postIdは、「そのコメントがどのPostについているか」を示すものなので、このpostidはPostのIDです。

例えば… 今ここでやり取りしているGithub issueを、ブログ記事だと思ってください。 この記事ナンバー=Post idは、40です。 まりなさんが今読んでいるこのコメントは、Post id = 40についている、2個目のコメント=comment id = 2 となります(上の満里奈さんのコメントがid=1です)。 Comments リソースの中でこのコメントがデータとして入っているとすると下記のように入ってきます。

{ "id": 2, "body": "@writerity-marina...(以下省略)", "postId": 40 },

説明わかりづらくすみません、意味不明ってなったらコールで説明するので教えてください 👯

writerity-marina-funatsu commented 1 month ago

@writerity-mami-asakura

ご説明いただきありがとうございます!すべてクリアになりました💡

コメントにタイトルは無いので、誰かから指摘を受けて3月ごろ問題文編集したはず

あ、だから一回スクショ撮った後にタイトルの指示があることに気付いてあれ?ってなったんですね🙏参考にするために色んなチケット往復しているうちに混同してしまっていたようです、失礼しました🙇