このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

ハイパースキーマ

[JSON]タグを追加。

ハイパースキーマ仕様はしょうもないなー。なんかミソもクソも一緒。

評価できるポイントを挙げれば:

  1. URI Templates仕様によりURI設計を記述する方向はいいと思う。
  2. URI Templateのコンテキストオブジェクト自身を {-this} と書くのはまーいいか。
  3. となると、ハイフンで始まる名前は特殊扱いだな。
  4. HTMLフォーム機能を入れようとしている。

ダメなのは:

  1. URI Templatesのプレースホルダー内の式言語が定義されてない。
  2. 型システムを使うべき部分とアノテーションが区別されてない。
  3. ともかくアドホック過ぎる。

「self(自分)が、http://example.jp/people/{name}.json だ」とかの記述は型システムとは無関係。hrefの指す対象の型とかは明らかに型システム。だが、relは微妙だ。型システムに入れてもいいような気がする。

フォームのデータ型はたぶん次のようだろう。


type Person = {
"fn" : string,
"email : [string, string*],
* : any?
};

type PersonParam = Person & {
"fn" : string refers "{fn}",
"email" : string refers "{email}",
* : any?
};

PersonとPersonParamは型としては同じだが、refersが付いた分だけ違う。これはアノテーションかもしれない。


type PersonParam = {
"fn" : @[refers("{fn}")] string ,
"email" : @[refers("{email}") string,
* : any?
};

プロパティへの修飾は、キーワード構文を使うかアノテーションを使うか微妙。