# Extending JSON-LD AND Hydra Contexts ## JSON-LD

JSON-LD screencast
Watch the JSON-LD screencast

API Platform provides the possibility to extend the JSON-LD context of properties. This allows you to describe JSON-LD-typed values, inverse properties using the `@reverse` keyword, and you can even overwrite the `@id` property this way. Everything you define within the following annotation will be passed to the context. This provides a generic way to extend the context. ```php 'http://yourcustomid.com', '@type' => 'http://www.w3.org/2001/XMLSchema#string', 'someProperty' => [ 'a' => 'textA', 'b' => 'textB' ] ] )] public $name; // ... } ``` The generated context will now have your custom attributes set: `GET /contexts/Book` ```json { "@context": { "@vocab": "http://example.com/apidoc#", "hydra": "http://www.w3.org/ns/hydra/core#", "name": { "@id": "http://yourcustomid.com", "@type": "http://www.w3.org/2001/XMLSchema#string", "someProperty": { "a": "textA", "b": "textB" } } } } ``` Note that you do not have to provide the `@id` attribute. If you do not provide an `@id` attribute, the value from `iri` will be used. ## Hydra

Hydra screencast
Watch the Hydra screencast

It's also possible to replace the Hydra context used by the documentation generator: ```php 'bar']) ])] class Book { //... } ``` ```yaml # api/config/api_platform/resources.yaml # The YAML syntax is only supported for Symfony resources: App\ApiResource\Book: operations: ApiPlatform\Metadata\Get: hydraContext: { foo: 'bar' } ``` ```xml bar ```