kmfk / hateoas-bundle
Symfony2 Bundle,用于向JMS Serializer添加符合Hateoas规范的URL
Requires
- php: >=5.4.0
- doctrine/common: >2.4.0
- jms/serializer-bundle: dev-master
Requires (Dev)
- symfony/symfony: dev-master
This package is not auto-updated.
Last update: 2024-09-14 14:29:41 UTC
README
虽然这是一个简单的、可插入的Symfony Bundle,但你在这里可以找到一个功能更全的库和Bundle
###概述
Hateoas Bundle与JMS Serializer一起工作,允许你轻松地向REST API的JSON输出中添加符合Hateoas规范的资源URL。
虽然还有其他类似的Bundle,但它们对我来说似乎太重了。这个Bundle旨在无缝地与JMS Serializer一起工作,无需抽象或混淆你的数据序列化。
目前,这个Bundle只为序列化响应中的资源链接提供注解。
###Hateoas Bundle安装
最佳安装方法是通过使用composer。
#####将Bundle添加到Composer
"require": { "kmfk/hateoas-bundle": "~0.1", }
#####更新AppKernel.php
将Hateoas Bundle添加到你的kernel引导序列中
public function registerBundles() { $bundles = array( // ... new Kmfk\Bundle\HateoasBundle\HateoasBundle(), ); return $bundles; }
####配置Bundle
该Bundle允许你配置REST API主机和可选的路径前缀。你的链接将使用这些值构建。如果它们未设置,则Bundle将默认从当前请求中解析。
#app/config.yml
hateoas:
host: http://api.example.com/
prefix: /api/
###注解
配置完毕后,你可以使用此Bundle提供的注解轻松地将资源链接添加到你的类和属性中。
#src/AcmeBundle/Entity/UserEntity.php use Kmfk/Bundle/HateoasBundle/Annotation/Hateoas; /** * @Hateoas( * name ="self", * href ="/user/{id}/" * params ={"id" = "getId"}, * groups ={"list"}, * type ="absolute" * ) */ class UserEntity { protected $id; public function getId() { return $this->id; } }
####输出
{ "_links": { "self": { "href": "http://api.example.com/api/user/1/" } } }
###注解参考
####使用参数你可以在href
中拥有多个令牌。params
数组应是一个关联数组,其键与路径中的令牌匹配。列出的方法应该是存在于注解类中的方法。
####组指定groups
允许你根据排除组控制链接的输出
####嵌入式链接与绝对链接虽然absolute
(默认值)将包括API主机和可选前缀,但embedded
URL位于其他资源之下。将类型设置为'embedded
'将允许你有这样的链接
{ "_links": { "self": { "href": "http://api.example.com/api/user/1/email/1/" } } }