API Generator Options

Supported API Params

API Generator has a bunch of options and parameters. Following parameters are supported with index API.

limit:Limit the number of returned results

search:Global search on all searchable fields

offset:Offset from where results should be returned

sortedBy:Sort result by given field

Swagger

You can also generate swagger annotations for your apis. swagger option is false by default and can be
enabled from config. set 'add_on.swagger' => true.

Also, in addition, you need to configure appointer/swaggervel. You can find installation process here

Test Cases Generation

You can also generate test cases for your APIs, test generation option is false by default and
can be enabled from config.

Here are the full steps to generate test cases:

Set 'add_on.tests' => true in
config/laravel_generator.php.

If you have a different test directory then standard laravel one, set the path of your test directory in
config file. (config/laravel_generator.php => 'paths' =>
'api_tests' => {your_test_directory).
Otherwise you can just skip this step.

Run an artisan command php artisan infyom.publish:tests. It will
generate a ApiTestTrait.php
into your tests directory.

Once, you are done with installation. Make 'add_on.datatables' => true in
config/infyom/laravel_generator.php.

Datatables from CLI

Datatables can be configured from config but Generator also gives option to override the option on the fly
while generating files. You can specify --datatables=true OR --datatables=false to
override configured value of Datatable.

php artisan infyom:scaffold $MODEL_NAME --datatables=true

Generate Only Specified Views

While generating views, if you don't want to generate all views again. Then you can pass an option --views.
For example,

You can specify any of these values and only that view files will be generated.

Some relationships, like One to Many do not have a local field in current model, but some other model
contains its primary key as foreign key. In such cases, you can define relationship by following
definition:

{
"type": "relation",
"relation": "1tm,Comment,post_id"
}

Custom Table Name

You can also specify your own custom table name by,

php artisan infyom:scaffold $MODEL_NAME --tableName=custom_table_name

Generate From Table

Skip File Generation

The Generator also gives the flexibility to choose what you want to generate or what you want to skip. While
using generator command, you can specify skip option to skip files which will not be generated.

php artisan infyom:api_scaffold Post --skip=routes,migration,model

You can specify any file from the following list:

migration

model

controllers

api_controller

scaffold_controller

scaffold_requests

routes

api_routes

scaffold_routes

views

tests

menu

dump-autoload

Custom Primary Key Name

By default, Generator takes the primary key as id field. But is also gives you the flexibility
to use your own primary key field name via --primary option.

php artisan infyom:scaffold $MODEL_NAME --primary=custom_name_id

Prefix option

Sometimes, you don't want to directly generate the files into configured folder but in a subfolder of it.
Like, admin and that subfolder should be created with namespaces in all generated files. Then
you can use --prefix=admin option.