Cornice Tutorial (2)

はじめに

引き続き、公式サイトのチュートリアルを写経していきます。 ちなみに完全な和訳を目指しているわけではないです。あしからず。

サービスの作成

サービスの実装は、cornice_tutorial/views.py に記述するようです。 中身を確認してみると・・・

1
2
3
4
5
6
7
8
9
10
11
12
""" Cornice services.
"""
from cornice import Service


hello = Service(name='hello', path='/', description="Simplest app")


@hello.get()
def get_info(request):
    """Returns Hello in JSON."""
    return {'Hello': 'World'}
  • 6行目がサービスの定義
  • 9 - 12行目がサービス(レスポンス)の実装

となってるようです。

サービス定義で指定するパラメータ

6行目のサービス定義の中の詳細について、公式マニュアルより引用すると

  • name (Required)
    • サービス名。全体でユニークな者にする必要がある
  • path (Required)
    • サービスへのリクエストパス(URI)。全体でユニークする必要がある。
  • description (Optional)
    • サービスの説明。

上記以外にもいくつかパラメータが用意されているようですが、それはいずれかの機会にでも・・・

レスポンスの実装

  • 9行目
    • このサービスで受け入れる(HTTP)メソッド
    • Get, Post, Put, Delete, Head, Optionが用意されている
  • 12行目
    • dictとして戻り値を指定することで、JSONオブジェクトとして処理されるHTTPレスポンスが構築される。
    • ver 0.14時点では、JSONしか返すことができない模様

では、チュートリアルに戻って、ユーザー一覧を実装してみる。 cornice_tutorial/views.py のサービス定義とレスポンス実装を削除し、代わりに以下のように記述。

1
2
3
4
5
6
7
8
users = Service(name='users', path='/users', description="ユーザー管理サービス(一覧・追加・削除)")

_USERS = {}

@users.get()
def list_users(request):
    """登録されたすべてのユーザーを列挙 """
    return { 'users': _USERS }

pserve cornice_tutorial.ini でサービスを起動し、

curl http://localhost:6543/users

を実行し、

{"users": {}}

と出力されれば、とりあえずOKということで。

Cornice Tutorial (3)へつづく…

おまけ

Windows使いは、curlコマンドないので、Powershellから

invoke-webrequest -method get http://localhost:6543/users

または

invoke-restmethod -method get http://localhost:6543/users

とすればいいのかな?