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

JSON-LD screencast
Watch the JSON-LD screencast

API Platform Core 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 [ "@id" => "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 ["hydra_context" => ["foo" => "bar"]] ])] class Book { //... } ``` ```yaml # api/config/api_platform/resources.yaml App\Entity\Book: itemOperations: get: hydra_context: { foo: 'bar' } ``` ```xml bar ```