make-requestコマンド
現状のrequestを定義するなら、http://d.hatena.ne.jp/m-hiyama/20101201/1291165175 に書いたコマンド以外に make-request というコマンドが必要。make-requestは単にXJSONデータを吐き出すだけのコマンドだが、process-requestの入力データを作る。
/** 入力とパラメータからリクエストデータを作る */
command make-request
{
/** 入力のメディアタイプ */
@[without("ext")]
@[default("application/octet-stream")]
"content-type" : mediaType?,/** 拡張子によりメディアタイプを指定 */
@[without("content-type")]
"ext" : string?,/** HTTPメソッド */
@[default("GET")]
"method" : ("GET"|"POST"|"PUT"|"DELETE"|"HEAD")?,/** 動詞 */
@[default("")]
"verb" : string?,
}
[
/** リクエストパス*/ path
] ::
( /** ボディなし */
null |
/** テキストまたはバイナリ */
(string|binary) |
/** フォーム */
object |
/** 明示的なフォーム指定 */
@form object |
/** JSON */
@json any
) -> WebRequest
throws @ConfilictSettings ;
- content-typeもextも指定されなかったら入力からメディアタイプを判断する。
- メディアタイプが判断できなければ、octet-stream。
- オプションと入力が矛盾するようなときは、@ConflictSettings例外。
- 例外の型は型名じゃなくてタグを書いてもよいとする。