attus / jsonapi_response
基于自定义数据的JSON:API响应
2.4.0
2024-06-21 08:37 UTC
Requires
- drupal/core: ^10.2 || ^11.0
README
这是一个用于自定义JSON:API实体响应的Drupal 10模块。
用法
use Symfony\Component\DependencyInjection\ContainerInterface; use Drupal\Core\Controller\ControllerBase; use Drupal\Core\Cache\CacheableMetadata; use Drupal\Core\Cache\CacheableResponseInterface; use Drupal\jsonapi_response\JsonapiEntityResponseInterface; class MyController extends ControllerBase { private $_jsonapiResponseEntity; public function __construct(JsonapiEntityResponseInterface $jsonapiResponseEntity) { $this->_jsonapiResponseEntity = $jsonapiResponseEntity; } public static function create(ContainerInterface $container) { return new static( $container->get('jsonapi_response.entity'), ); } /** * A single entity in JSON:API Format */ public function getMyEntity(): CacheableResponseInterface { $entity = $this->getEntityForResponse(); $response = $this->_jsonapiResponseEntity->entityIndividualResponse($entity); $cache = new CacheableMetadata(); $cache->setCacheMaxAge(0); $response->addCacheableDependency($cache); return $response; } /** * An entity collection in JSON:API Format */ public function getMyEntityCollection(): CacheableResponseInterface { $entities = $this->getEntitiesForResponse(); return $this->_jsonapiResponseEntity->entityCollectionResponse($entities); } /** * An entity collection in JSON:API Format with includes */ public function getMyEntityCollectionWithIncludes(): CacheableResponseInterface { $entities = $this->getEntitiesForResponse(); return $this->_jsonapiResponseEntity->entityCollectionResponse($entities, [$fieldName1, $fieldName2]); } }
您可以自由使用此模块,没有任何限制,但没有任何保证。