bentools/api-platform-create-resource

允许通过PUT操作创建资源。

0.1.0 2020-01-31 15:04 UTC

This package is auto-updated.

Last update: 2024-09-08 05:22:45 UTC


README

此包是API Platform的附加组件,通过PUT动词提供资源创建功能。

REST中的“更新”类型。

这意味着你可以发送以下请求

PUT /api/books/d9a5551f-f188-45e4-a034-00b744a08a31
Content-Type: application/ld+json
Accept: application/ld+json

{"name":  "Book title"}

如果 /api/books/d9a5551f-f188-45e4-a034-00b744a08a31 不存在,则创建此资源,否则根据规范替换其内容。

这样,客户端不必关心是应该POST还是PUT,它总是PUT。这涉及将资源ID的生成委托给客户端(例如,可以使用UUIDs / ULIDs)。

安装

composer require bentools/api-platform-create-resource:0.1.*

重要提示:为了正常工作,此包必须先于ApiPlatformBundle加载。

配置

期望此行为的资源类必须明确列出

# config/packages/api_platform_create_resource.yaml
api_platform_create_resource:
  allowed_classes:
    App\Entity\Book: ~

资源实例化

如果你的实体/对象需要工厂服务进行实例化,你可以实现自己的BenTools\ApiPlatform\CreateResource\Factory\ItemFactoryInterface并将其作为服务引用

# config/packages/api_platform_create_resource.yaml
api_platform_create_resource:
  allowed_classes:
    App\Entity\Book: '@App\Services\BookFactory'

测试

谁在乎呢?😄

许可证

MIT。