[解決済み] JSONの構造を記述するための構文
2023-06-17 07:08:23
質問
私が書いているAPIが返すjsonのフォーマットを文書化しようとしているのですが、json構造の文書化のための一般的なフォーマットがあれば知りたいのです。
私は何かをテストまたは検証しようとしていないことに注意してください、私は単にドキュメントのためにこれを使用しています。また、非定数(常に同じ値で返される項目)にコメントを追加するいくつかの方法があるとうれしいです。
これは、私が現在使用している完全に考え抜かれたスキームではありません。
Plain names refer to identifiers or types.
Some types have type-comment
Strings that appear to be constant(always returned for that type of request) strings are "str"
Constant Numbers would be just the number
Constant null is null
Booleans are true/false for constant booleans or Boolean otherwise
[a,b,c] are lists with 3 items a,b,c
[... ...] is a list of repeating elements of some types/constants/patterns
{a:A,b:B,c:c} and {... ...} is the same for a dictionary.
の例です。
story := [header,footer]
header := {"data":realHeader,"kind":"Listing"}
realHeader := {"after": null, "before": null, "children": [{"data": realRealHeader, "kind": "t3"}], "modhash": ""}
footer := {"data":AlmostComments,"kind":"Listing"}
AlmostComments := {"data": {"after": null, "before": null, "children": comments, "modhash": ""}, "kind": "t1"}
comments := [...{"data":comment, "kind":"t1"}...]
realRealHeader :=
{"author": string,
"clicked": boolean,
"created": int,
"created_utc": int,
"domain": "code.reddit.com",
"downs": int,
"hidden": boolean,
"id": string-id,
"is_self": boolean,
"levenshtein": null,
"likes": null,
"media": null,
"media_embed": { },
"name": string-id,
"num_comments": int,
"over_18": false,
"permalink": string-urlLinkToStoryStartingFrom/r,
"saved": false,
"score": int,
"selftext": string,
"selftext_html": string-html,
"subreddit": string-subredditname,
"subreddit_id": string-id,
"thumbnail": "",
"title": string,
"ups": int,
"url": "http://code.reddit.com/"
}
comments := {
"author": string,
"body": string-body_html-wout-html,
"body_html": string-html-formated,
"created": int,
"created_utc": int,
"downs": int,
"id": string-id,
"levenshtein": null,
"likes": null,
"link_id": string-id,
"name": string-id",
"parent_id": string-id,
"replies": AlmostComments or null,
"subreddit": string-subredditname,
"subreddit_id": string-id,
"ups": int
}
どのように解決するのですか?
理論的には JSON スキーマ はこの目的を果たすことができますが、実際にはそうであるかどうかはわかりません。言及する価値があると思います。
これ以外の個人的な意見としては、JSONは主にオブジェクトを転送するために使用されるので、クライアントが使用する言語(Java、C#、さまざまなスクリプト言語)で同等のオブジェクトを文書化することが最も理にかなっているかもしれません -- 結局、そのようなオブジェクトは通常JSONにマッピング/バインドされて戻ってくるのです。そして、Java用のJavadoc(Perl用のperldoc、c++用のOxygenなど)のような、利用可能なあらゆるドキュメント化ツールを使用することができます。
インターフェースを指定するために WADL (Web App Description Language) があり、これが役に立つかもしれません。
関連
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] JSONでコメントを使用することはできますか?
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] cURLでJSONデータをPOSTするにはどうすればよいですか?
-
[解決済み] JavaScriptでJSONをきれいに印刷する
-
[解決済み] Microsoft JSONの日付はどのようにフォーマットするのですか?
-
[解決済み] JSONファイルをprettyprintする方法は?
-
[解決済み] 正しい」JSONの日付形式とは?
-
[解決済み】なぜPythonはこのJSONデータをパースできないのですか?[終了] PythonがこのJSONデータをパースできないのはなぜですか?
-
[解決済み] fs.writeFileSyncによるJSONオブジェクトのJSONファイルへの書き込み
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】jq: 文字列で配列のインデックスを作成できない
-
[解決済み】tsconfig.json: Build:No inputs were found in config file.
-
[解決済み] Elasticsearchで部分一致を行うにはどうしたらいいですか?
-
[解決済み] REST API - "Accept: application/json" HTTP ヘッダーを使用する
-
[解決済み] Notepad++でJSONを再フォーマットする方法は?
-
[解決済み] UnixツールでJSONをパースする
-
[解決済み] JSONとは何か、何に使うのか?
-
[解決済み] .NET NewtonSoft JSONのデシリアライズマップを異なるプロパティ名に変更する。
-
[解決済み] CSV/XLSをJSONに変換する?[クローズド]
-
[解決済み] fs.writeFileSyncによるJSONオブジェクトのJSONファイルへの書き込み