SwaggerでOpenAPIのスキーマを作成していますが、$ref
要素を悪用しているかどうかはわかりません。私は$ref
要素は、具体的にどのようにとのオープンAPIの仕様のドキュメントではあまり見ない
User:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
...
Project:
type: object
properties:
id:
type: string
user_id:
$ref: "#/components/schemas/User"
...
のようなものに似てUser
モデルとProject
モデルを、持っていますが、JSONスキーマドキュメント-の中これはオープンAPIは$ref
要素は - 私を拡張項目の以下の記述を見つけました:
$ REFを記述するための最も簡単な方法は、それが論理的にそれが指しているものと置き換えてしまうことです。
上記の場合、プロジェクトを投稿したユーザーを参照するだけです。プロジェクトモデルにユーザーに関するすべての情報を含める必要はないと思われます。 user_id
のuuidの要素をstring
にするほうがよいでしょうか?それとも正しいですか?その場合はuser_id
ではなく、フィールド名をuser
とするのが一般的ですか?
編集: 再帰的な参照がある場合は、私に迷惑をかけていたことの心がわかります。ユーザーが$ref
のProjectsへの配列を持ち、Projectにもユーザーに$ref
の配列がある場合、置き換え(それが行われている場合)によって、各モデルが無限に他のものに埋め込まれます。 $ref
がModelへのポインタに過ぎないと仮定すると、これは実際には起こりそうにないと思いますか?