symfony-jsonapi
symfony-jsonapi copied to clipboard
Annotations
Would it be possible to have annotation support? That would make it a lot easier to write the relationship mapping, you could simply do it in your doctrine entities.
Agreed.
Perhaps introduce a new annotation to determine which columns should be exposed via the API, so that we don't accidentally blurb out sensitive information (like passwords).
For instance @ApiExposable
or @ClientExposable
.
Example entity:
/**
* @Entity
*/
class User
{
/**
* @Id
* @Column(type="integer")
* @GeneratedValue
* @ApiExposable
*/
private $id;
/**
* @Column(type="string")
* @ApiExposable
*/
private $username;
/**
* @Column(type="string")
*/
private $password;
/**
* @Column(type="string")
*/
private $email;
}
(Disclaimer: Passwords should never be in any User
table directly, but that's another talk and this is just a thought-up example.)
In the above example, only columns id
and username
will be exposed when the entity is JSON serialized.
On a related note: The class metadata can be used to automatically find @Id
columns. As such:
$meta = $em->getClassMetadata(get_class($entity));
var_dump($meta->getIdentifierFieldNames());
It should just work without annotation, so it would be better with @ApiHide
annotation.