LoginSignup
0
0

More than 5 years have passed since last update.

RESTfm で Read してみよう その1

Posted at

RESTfm で Read する

いよいよ RESTfm を実際に使っていきます。まずは CRUD の基本である Read を行います。使用するメソッドはもちろんGETで、Webブラウザ で簡単に試すことができます。このメソッドを用いる限りデータベースのデータがいじられるということはないので、気軽に試してみてください1

基礎となる URI

今後の説明を分かりやすくするために、RESTfm を以下の場所に配置したと仮定します。

http://hogehoge/RESTfm/

取得するフォーマットは HTML

これまた分かりやすさを重視して、返ってくるフォーマットとしては HTML を選択します。別のフォーマットを選択したい場合は以前の記事に書いた内容を参照してください。

まずはルートフォルダ

前置きが長くなりましたがさっそくアクセスです。Webブラウザ で以下の URI にアクセスしましょう。

http://hogehoge/RESTfm/

データベース一覧と、そこへのリンクが表示されたはずです。おめでとうございます! RESTfm の API が叩けました。返り値のフォーマットが HTML なのでどうしても単なる Webページ や Webアプリケーション に見えてしまいますが、HTML というフォーマットに則った返り値であるとみることができます。

このアドレスへのアクセスは、FileMaker Server で言えば、データベース名選択画面にアクセスしたことと同じです。

データベースへのアクセス

次に個々のデータベースの API を叩きます。対象のデータベース名をMemberとした場合には URI は以下のようになります。アクセスしてみましょう。

http://hogehoge/RESTfm/Member

デフォルトのフォーマットは HTML ですので、HTML の形式(Webブラウザで見て違和感ない形式)で内容が表示されたのではないでしょうか。リンクとしてlayoutscriptsという名称を見ることができますね。だいたい予想はつくと思います。

データベースのレイアウトへのアクセス

さらに掘っていって、データベース内のレイアウトの API を叩きましょう。対象のデータベース名がMember、レイアウト名がcategoriesと仮定します。この場合、以下の URI を叩けば OK です。当該レイアウト内のレコードが並んでいるのが見えると思います。

http://hogehoge/RESTfm/Member/layout/categories

なお、レイアウト一覧を表示させたい場合は以下の URI を叩きます。

http://hogehoge/RESTfm/Member/layout

レコードへのアクセス(レコードIDを指定する)

さらにさらに掘っていって、レコード単体の API を叩きましょう。対象のデータベース名がMember、レイアウト名がcategories、レコードIDが12345の場合、以下の URI を叩きます。

http://hogehoge/RESTfm/Member/layout/categories/12345

なお、「レコードID」を知るためには別途取得の必要がありますが、その方法についてはここでは省略します。

レコードへのアクセス(フィールドの一意の値を指定する)

「レコードID」を指定する方法は見通しが悪いので、フィールド名の値を利用してレコードの API を叩く方法を示しましょう。こちらの方が使い勝手が良いでしょう。

対象のデータベース名がMember、レイアウト名がcategoriesとし、categoriesの中にcategory_idというフィールドがあると仮定します。このcategory_id123というレコードの API を叩くためには、以下の URI にアクセスします。

http://hogehoge/RESTfm/Member/layout/categories/category_id%3D%3D%3D123

すなわち、レイアウトを指定した次の階層に、フィールド名=検索条件と指定すればよいのです。ここでの「検索条件」の指定方法は FileMaker の検索書式と同一です。

上記例では「検索条件」を「==123」と指定しています。もともとの URI 指定の書式に含まれる「=」と合わせると 3 つの「=」が並ぶことになります。そして URI では記号や日本語はエンコードする必要がありますので2、「=」という記号を「%3D」とエンコードし、それを 3 つ連ねた、というわけです。エンコード前の状態は「category_id===123」ということです。

この方法で API を叩く際には一点注意することがあります。それは、レコードが一意に定まる検索条件を指定するということです。検索の結果、複数のレコードがヒットしてしまった場合はエラーが返ってきます。

他にも Read(GETメソッド)の API はあります

あまりに一気に説明しても消化しきれないと思うので、この記事ではここまでにします。記事タイトルに「その1」とありますように、「その2」まで書きますので残りはそちらに譲りたいと思います。


  1. メソッドのオーバーライドという例外がありますが、そのような例外的な場合はその旨を明示します 

  2. もっとも、最近の Webブラウザ は賢いので、自動で内部的にエンコードしてくれるものが多いです 

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0