メインコンテンツまでスキップ

エンドポイントに送るパラメータについて、フロントエンドからクエリでリクエストするのと、Kurocoの管理画面で設定するのとで違いがありますか?

エンドポイントに設定するパラメータについて、下記2つの方法があります。

  • フロントエンドからクエリを付けてリクエストする。
  • Kurocoの管理画面で設定する。

以下にそれぞれの特徴を説明いたします。ご利用用途により最適な方法をご選択ください。

フロントエンドからクエリを付けてリクエストする。

クエリでリクエストすることで、エンドポイントからのレスポンスを動的に変更できます。

Image (fetched from Gyazo) 検索機能を実装するfilterのパラメータや、KurocoとNuxt.jsで、多言語サイトを構築する?_lang=enのパラメータはこちらの方法で設定をし、同じページ内で表示の変更をしています。

Kurocoの管理画面で設定する。

APIのページから[更新]をクリックして表示される[エンドポイントの設定]で設定します。

Image from Gyazo

パラメータを管理画面で設定すると、ユーザー(もしくは外部の方)からはそのパラメータは変更できません。
固定化しておきたいものや、セキュリティ関連などで変更をされたくないパラメータは、Kurocoの管理画面内で設定をしてください。

ヒント

基本的にはAPIの設定で指定されているパラメータは外部からのリクエストで上書きできませんが、検索条件になっている一部パラメータや設定はさらに絞り込む用途で上書きができるものもあります。
例) 一覧の表示件数を指定するcntパラメータは上書きが可能です。

例えばお問合せフォームとしてPOST .../form/${form_id}のようなエンドポイントを作った場合、ユーザーが任意のパラメータを付けて送信できます。
すると、下記のフォーム(ID=5, 6, 7)のいずれにもデータを送信できてしまい、セキュリティ上問題があります。

Image (fetched from Gyazo) このような場合は、公開するフォームに対してそれぞれにエンドポイントを個別で作成し、管理画面内でフォームidの設定をします。

例えば下記の様に設定することで、form_idが7のフォームはユーザーが自由に利用できないようになるので、セキュリティリスクを取り除けます。

  • POST .../form/bug_report -> form_id は5で固定
  • POST .../form/inquiry -> form_id は6で固定

まとめ

2つの方法は、ユーザーからパラメータを変更できるか否かに違いがあります。

フロントエンドからクエリを付けてリクエストする方法は、パラメータを動的に付与したい場合に、Kurocoの管理画面で設定する方法は、セキュリティ関連などでパラメータを固定したい場合に向いています。
用途に合わせて設定をお願いいたします。


サポート

お探しのページは見つかりましたか?解決しない場合は、問い合わせフォームからお問い合わせいただくか、Slackコミュニティにご参加ください。