Skip to content

Commit 4814908

Browse files
docs(external-vocabularies): compatibility with laravel (#2087)
1 parent 192944e commit 4814908

File tree

1 file changed

+36
-21
lines changed

1 file changed

+36
-21
lines changed

core/external-vocabularies.md

Lines changed: 36 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ API Platform provides attributes usable on PHP classes and properties for specif
77

88
```php
99
<?php
10-
// api/src/Entity/Book.php
11-
namespace App\Entity;
10+
// api/src/ApiResource/Book.php with Symfony or app/ApiResource/Book.php with Laravel
11+
namespace App\ApiResource;
1212

1313
use ApiPlatform\Metadata\ApiProperty;
1414
use ApiPlatform\Metadata\ApiResource;
@@ -52,22 +52,37 @@ The generated JSON for products and the related context document will now use ex
5252

5353
An extended list of existing open vocabularies is available on [the Linked Open Vocabularies (LOV) database](https://lov.linkeddata.es/dataset/lov/).
5454

55-
By default, when using [validations](validation.md) API Platform will try to define known [Schema.org](https://schema.org) types as IRIs for your properties if you did not provide any in your `#[ApiProperty]` attributes.
56-
Built-in mapping is:
57-
58-
| Constraints | Schema.org type |
59-
| ---------------------------------------------------- | ---------------------------------- |
60-
| `Symfony\Component\Validator\Constraints\Url` | `https://schema.org/url` |
61-
| `Symfony\Component\Validator\Constraints\Email` | `https://schema.org/email` |
62-
| `Symfony\Component\Validator\Constraints\Uuid` | `https://schema.org/identifier` |
63-
| `Symfony\Component\Validator\Constraints\CardScheme` | `https://schema.org/identifier` |
64-
| `Symfony\Component\Validator\Constraints\Bic` | `https://schema.org/identifier` |
65-
| `Symfony\Component\Validator\Constraints\Iban` | `https://schema.org/identifier` |
66-
| `Symfony\Component\Validator\Constraints\Date` | `https://schema.org/Date` |
67-
| `Symfony\Component\Validator\Constraints\DateTime` | `https://schema.org/DateTime` |
68-
| `Symfony\Component\Validator\Constraints\Time` | `https://schema.org/Time` |
69-
| `Symfony\Component\Validator\Constraints\Image` | `https://schema.org/image` |
70-
| `Symfony\Component\Validator\Constraints\File` | `https://schema.org/MediaObject` |
71-
| `Symfony\Component\Validator\Constraints\Currency` | `https://schema.org/priceCurrency` |
72-
| `Symfony\Component\Validator\Constraints\Isbn` | `https://schema.org/isbn` |
73-
| `Symfony\Component\Validator\Constraints\Issn` | `https://schema.org/issn` |
55+
By default, when using [validations](validation.md) API Platform will try to define known [Schema.org](https://schema.org)
56+
types as IRIs for your properties if you did not provide any in your `#[ApiProperty]` attributes.
57+
58+
- Symfony built-in mapping is:
59+
60+
| Constraints | Schema.org type |
61+
|------------------------------------------------------|------------------------------------|
62+
| `Symfony\Component\Validator\Constraints\Url` | `https://schema.org/url` |
63+
| `Symfony\Component\Validator\Constraints\Email` | `https://schema.org/email` |
64+
| `Symfony\Component\Validator\Constraints\Uuid` | `https://schema.org/identifier` |
65+
| `Symfony\Component\Validator\Constraints\CardScheme` | `https://schema.org/identifier` |
66+
| `Symfony\Component\Validator\Constraints\Bic` | `https://schema.org/identifier` |
67+
| `Symfony\Component\Validator\Constraints\Iban` | `https://schema.org/identifier` |
68+
| `Symfony\Component\Validator\Constraints\Date` | `https://schema.org/Date` |
69+
| `Symfony\Component\Validator\Constraints\DateTime` | `https://schema.org/DateTime` |
70+
| `Symfony\Component\Validator\Constraints\Time` | `https://schema.org/Time` |
71+
| `Symfony\Component\Validator\Constraints\Image` | `https://schema.org/image` |
72+
| `Symfony\Component\Validator\Constraints\File` | `https://schema.org/MediaObject` |
73+
| `Symfony\Component\Validator\Constraints\Currency` | `https://schema.org/priceCurrency` |
74+
| `Symfony\Component\Validator\Constraints\Isbn` | `https://schema.org/isbn` |
75+
| `Symfony\Component\Validator\Constraints\Issn` | `https://schema.org/issn` |
76+
77+
- Laravel built-in mapping is:
78+
79+
| Laravel Validation Rule | Schema.org Type |
80+
|-------------------------------|------------------------------------|
81+
| `url` | `https://schema.org/url` |
82+
| `email` | `https://schema.org/email` |
83+
| `uuid` | `https://schema.org/identifier` |
84+
| `date` | `https://schema.org/Date` |
85+
| `date_format:Y-m-d H:i:s` | `https://schema.org/DateTime` |
86+
| `date_format:H:i` | `https://schema.org/Time` |
87+
| `image` | `https://schema.org/image` |
88+
| `mimes` or `mimetypes` | `https://schema.org/MediaObject` |

0 commit comments

Comments
 (0)