Skip to content

Lomkit/laravel-rest-api

Repository files navigation

Social Card of Laravel Permission

Laravel Rest Api

Laravel Rest Api is an elegant way to expose your app through an API, it takes full advantage of the Laravel ecosystem such as Policies, Controllers, Eloquent, ...

Requirements

PHP 7.3+ and Laravel 8.0+

BETA

Please note that this package is under beta and is not recommended to use for production environment for now. End of beta should be by October 2023.

Documentation, Installation, and Usage Instructions

See the documentation for detailed installation and usage instructions.

What It Does

You'll find multiple endpoints exposed when using this package such as mutating, searching, showing, deleting, ...

Here is a quick look at what you can do using API search method:

// POST api/posts/search
{
    "scopes": [
        {"name": "withTrashed", "parameters": [true]}
    ],
    "filters": [
        {
            "field": "id", "operator": ">", "value": 1, "type": "or"
        },
        {
            "nested": [
                {"field": "user.posts.id", "operator": "<", "value": 2},
                {"field": "user.id", "operator": ">", "value": 3, "type": "or"}
            ]
        }
    ],
    "sorts": [
        {"field": "user_id", "direction": "desc"},
        {"field": "id", "direction": "asc"}
    ],
    "selects": [
        {"field": "id"}
    ],
    "includes": [
        {
            "relation": "posts",
            "filters": [
                 {"field": "id", "operator": "in", "value": [1, 3]}
            ],
            "limit": 2
        },
        {
            "relation": "user",
            "filters": [
                {
                    "field": "languages.pivot.boolean",
                    "operator": "=",
                    "value": true
                }
            ]
        }
    ],
    "aggregates": [
        {
            "relation": "stars",
            "type": "max",
            "field": "rate",
            "filters": [
                {"field": "approved', "value": true}
            ]
        },
    ],
    "page": 2,
    "limit": 10
}

Changelog

TODO

Contributing

TODO

Roadmap for the end of bĂȘta (Estimated delivery October 2023)

  • Custom directives (Filters / sorting)
  • Actions / Metrics
  • Automatic documentation with extension possible
  • Refactor the response class