traP-jp / traO-Judge-backend

traO Judge バックエンド
MIT License
6 stars 0 forks source link

add openapi.yaml #6

Closed ramdos0207 closed 1 month ago

ramdos0207 commented 3 months ago

@mathsuky が書いてくれたAPI設計

mathsuky commented 2 months ago

全体的にパスでシングルクォートがついているものとついていないものがあるので見栄えとして統一してほしい

これは僕が使ってるエディタの設定のせいで,変更方法が見当たらなかったので一旦無視させてください:pray: ちなみにパスパラメタの有無で使い分けているようです。

mathsuky commented 2 months ago

指摘いただいた点について修正したので,再レビューお願いいたします

mathsuky commented 2 months ago

ごめん,ミスって虚無の修正も大量にcommitしちゃってるわ:pray:

mathsuky commented 2 months ago

やったことは,ぽんじゅーすくんに指摘もらった簡単な修正をしたところと,Problemとかでは完全なテストケースを返すのではなくてid,name,時刻関連のみからなる配列を返すようにしたところです。

comavius commented 2 months ago

@mathsuky openapi.yamlをtraO-Judge-docsで管理するので、ここでのレビューが終わり次第docsの方にPRを立てていただけるとありがたいです。 https://github.com/traP-jp/traO-Judge-docs/issues/3

kenken714 commented 1 month ago

JWTトークンについていくつか確認したいです。

まず、JWT認証の流れについては、(新規会員登録時を例にすると)

  1. /signup/requestにemailを送る。
  2. JWTをクエリパラメータに含むエンドポイントをメールで送る。
  3. usernameとpassword、tokenを/signupに送る
  4. バックエンドでJWTを検証

という認識で合っていますか?

また、現状では、JWTトークンを使用する場所が3つあると認識しています。

  1. 新規会員登録時のメールアドレス認証
  2. ログイン画面でのパスワードリセット時のメールアドレス認証
  3. メースアドレス変更時のメールアドレス認証

このうち、1, 2 についてはJWTトークンでuserIdを持てなさそうだと思いました。 (actionも3つに分ける必要がありそうです)

また、3. にあたるAPIがなさそうに見えます

mathsuky commented 1 month ago

@kenken714 レビューありがとうございます!

JWT認証の流れについては、(新規会員登録時を例にすると)...

はい,それが僕が持っていたイメージです。

また、現状では、JWTトークンを使用する場所が3つあると認識しています。 ... 1, 2 についてはJWTトークンでuserIdを持てなさそうだと思いました。

そのとおりですね。指摘ありがとうございます! おそらく二種類のプロパティの異なるJWTが必要になりますね。書いた時に横着してサボってまとめてしまいました...

  1. にあたるAPIがなさそうに見えます

これについてはramdosくんにいただいた指摘のところでの返信とも関連しますが,変更後のメアドの更新も同様に/activate?payload=JWTでやるつもりでした。

メール認証用のエンドポイント(想定していた形式は/activate?payload=JWT)はバックエンドからメールを送る時のみに利用するのでfront-back間のapi定義ファイルには含めなくても良いかなと考えていました。

kenken714 commented 1 month ago

@mathsuky このPR、(初期のPRなので)マージ先がmainになっているため、developにして投げ直して欲しいです🙏🙏🙏

ramdos0207 commented 1 month ago

@mathsuky このPR、(初期のPRなので)マージ先がmainになっているため、developにして投げ直して欲しいです🙏🙏🙏

直しました!