このセラーの例では、タイトルと説明を使用します。リソースを宣言します。この関数は名前と無名関数も取ります。無名関数で定義されたプロパティには、リソースがサポートするすべてのアクションと、レスポンスでリソースを表示するために使用されるデフォルトのメディアタイプが含まれます。関数を使用して宣言されます。エンドポイントを表します。追加したクエリ文字列に対応させることもできます。定義しますが、リソースは任意の数を定義できます。ステータスコードのデフォルトレスポンステンプレートを定義します。定義可能なヘッダを定義します。追加の応答テンプレートを定義したり、既存の応答テンプレートを上書きすることができます。レスポンスを宣言するときに参照することができます。デザイン言語関数を使用して記述されます。この関数はデータ構造のフィールドの再帰的な定義を提供することを可能にします。デザイン言語のキーワードが説明や使用例と共に記載されています。ツールを使用してすべての定型コードを生成することができます。デザインパッケージへのインポートパスを引数として取ります。ターゲットを使用して完全な実装を生成します。下にデザインパッケージを作成した場合、コマンドラインは次のようになります。cellar/designこのツールは生成されたファイルの名前を出力します。デフォルトでは現在の作業ディレクトリにファイルが生成されます。リストは次のようになります。生成した方法に注目してください。ディレクトリだけが生成されるのに注目してください)。この動作とその他の多くの側面はコマンドライン引数で設定することができます。ドキュメントを参照してください。生成されたファイルの一覧に戻りましょう。ルータをコードに貼り付ける生成コードが含まれています。パッケージを実装する生成コードが含まれています。ツールが含まれています。仕様が含まれています。コントローラを実装するための開始点を提供します。パッケージのコンテンツを見てみましょう。型の定義が含まれています。実装をサービスに「マウント」するコードも含まれています。コントローラの「マウント」の正確な意味は以下でさらに説明されます。コンテキストデータ構造定義が含まれています。同様の役割を果たします。これはすべてのコントローラアクションの最初の引数として与えられ、リクエスト状態にアクセスしてレスポンスを書くためのヘルパメソッドを提供します。構築するためのグローバル関数を提供します。よって、レスポンスが関連リソースにリンクすることが可能になります。どのように構築するかを知ります。デザイン言語関数を参照してください。レスポンスを構築するためにリソースアクションによって使用されるメディアタイプのデータ構造が含まれています。つのそのようなデータ構造が生成されます。デザイン言語関数で定義されたデータ構造が含まれています。そのようなタイプはリクエストのペイロードおよびレスポンスのメディアタイプを定義するために使用することができます。コントローラのコードをテストするのに便利なテストヘルパが含まれています。コントローラの入力を使ってアクションの実装を呼び出し、結果のメディアタイプを検証することができます。コントローラの実装を提供するだけです。よって生成される型定義は次のとおりです。定義を見てみましょう。アクセスを与える匿名フィールドも含まれています。渡って送ることができます。つのメソッドも定義されています。コントローラの空の実装を生成しています。あとは私たちが実際の実装を提供するだけです。メソッドを以下のように置き換えてください。デフォルト実装が含まれています。}}コントローラをサービスにマウントすると、すべてのコントローラアクションのエンドポイントがルータに登録されます。このコードでは、異なるアクションのルート間に矛盾がないことも確認しています。サービスをコンパイルして実行します。cellar./cellarこれは次のようになります。使ってアプリをテストすることができます。よって生成されたバリデーションコードを実行することができます。ツールを使用してサービスにリクエストを出してみます。クライアントをコンパイルしましょう。フラグはコンテキストヘルプも提供します。アクションを呼び出す方法を示しています。できることのほんの一部をカバーしています。パッケージとサブパッケージを活用する方法の詳細については、こちらを参照してください。