Help us understand the problem. What is going on with this article?

TypeScriptの型定義からJSON Schemaを生成するオンラインツールを作ってみた

先日、TypeScript + Tynderから始める宣言的検証生活の記事にて
スキーマ検証ライブラリTynderを紹介いたしました。

Tynderとは

tynder-logo.png

Tynderは、TypeScriptのサブセット+独自の拡張文法から成るDSLによって

  1. 型の検査
  2. 単独の項目の必須・値の長さ・範囲や文字列パターンの検証
  3. 複数項目の相関や整合性検証の一部 (Union typeによる)

宣言的に行うことができます。

JSON Schemaを生成するオンラインツール

今回はTynderのスキーマ変換機能を使用して
JSON Schema、GraphQL、Protobuf3 のスキーマを生成するオンラインツールを公開しました。
(GraphQL、Protobuf3については実験的機能です)

tool-scr.png

追記(2020/2/9)

作成したスキーマはオンラインツールのJSON Schema validator等で動作確認できます。

上記のJSON Schema validatorで確認するには、オブジェクト内の最後の行に、definitions内のエントリーに対する$refを記述します。

{
  "$schema": "http://json-schema.org/draft-06/schema#",
  "definitions": {
    ...
    "Entry": { ... }
  },
  "$ref": "#/definitions/Entry" // <- ここです
}

追記(2020/2/11)

TypeScript (Tynder DSL) Schema Validator
でもスキーマの確認ができるようになりました。
(ただし、TypeScript(Tynder DSL)によるスキーマ記述のみに対応しています)

動機

API Blueprint等でのモックサーバー作成が捗らないかな、と思い作成しました。
UIは以前作成したこちらを流用することで、すぐに作成できました。

ぜひ、使ってみてくださいね

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした