lomkit / laravel-rest-api

为Laravel框架构建快速且健壮的REST API的软件包。

v2.8.7 2024-09-07 14:24 UTC

README

Social Card of Laravel Permission

Laravel Rest Api

Laravel Rest Api是一种优雅的方式来通过API公开您的应用,它充分利用了Laravel生态系统,如策略、控制器、Eloquent等。

要求

PHP 8.1+ 和 Laravel 10.0+

文档、安装和用法说明

请参阅文档以获取详细的安装和使用说明。

功能概述

使用此软件包时,您会发现多个端点被公开,如修改、搜索、显示、删除等。

以下是使用API搜索方法可以快速查看的内容:

// POST api/posts/search
{
    "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}
                ]
            },
        ],
        "instructions": [
          {
            "name": "odd-even-id",
            "fields": [
              { "name": "type", "value": "odd" }
            ]
          }
        ],
        "gates": ["create", "view"],
        "page": 2,
        "limit": 10
    }
}

路线图

  • 度量支持
  • 重构响应类
  • 包括/聚合的别名