simianbv / json-schema
一个基于提供的Laravel模型的JSON资源生成实用程序包,包括模型生成器和迁移工具
v1.0.7
2021-04-22 15:36 UTC
Requires
- php: >=7.3|^8.0
- ext-json: *
- nyholm/psr7: ^1.2
- symfony/yaml: ^5.0|^4.2
README
为Laravel模型生成JSON Schema的工具
安装
要安装,请使用以下命令
composer require simianbv/json-schema --dev
下一步;
artisan vendor:publish --provider="Simianbv\JsonSchema\JsonSchemaServiceProvider" --tag=json-schema-stubs
artisan vendor:publish --provider="Simianbv\JsonSchema\JsonSchemaServiceProvider" --tag=json-schema
以获取存根,下一步;
定义您的YAML
YAML定义已经准备好供您使用,用于创建模型、控制器、资源和未来可能用到的过滤器。
Role: # the name of the model namespace: Acl # Define the relative namespace timestamps: true # Allow timestamps for the model softDelete: true # Allow softdeletes columns: # Define your columns id: # The name of the column type: bigInteger # The column type primary: true # Whether it's primary unsigned: true # Should be unsigned name: # The name of the column type: string # The column type nullable: false # Nullable or not length: 50 # The length of the column unique: true # Whether it should be unique relations: # Define the relations Group: # The name of the related Model namespace: Acl # Define the related Model's namespace type: belongsToMany # Define the type of relation local: id # Define the primary key in the related model foreign: id # Define what the foreign key should be
另一个例子
RoleUser: # The name of the pivot table namespace: Acl # The relative namespace pivot_only: true # Set to true if this is only a pivt table timestamps: true # Whether you want timestamps columns: # Define your columns id: # The name of the column type: bigInteger # The type primary: true # Primary yes or no unsigned: true # Whether is should be unsigned or not role_id: # The name of the column ( note the _id ) type: bigInteger # The column type nullable: false # Nullable yes or no user_id: # The name of the column ( note the _id ) type: bigInteger # The column type nullable: false # Nullable yes or no relations: # The relations Role: # The name of the related Model namespace: Acl # The relative namespace this model resides in type: hasOne # The relation type local: role_id # The local key ( note the _id ) foreign: id # The foreign table's primary key User: # The name of the related Model namespace: # The namespace can be left blank type: hasOne # The Relation type local: user_id # The local column foreign: id # The foreign model's column
要定义JSON Schema,将在 /app/Resources/Json/
目录中生成一个资源类,您可以在其中进一步定义模式。您可以为它们添加布局元素,将它们包裹起来或水平或垂直对齐。