Skip to content

Annotations #29

Open
Open
@davidbarratt

Description

@davidbarratt

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.

Activity

kafoso

kafoso commented on Apr 6, 2017

@kafoso

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());
Toilal

Toilal commented on Apr 21, 2017

@Toilal

It should just work without annotation, so it would be better with @ApiHide annotation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Annotations · Issue #29 · nilportugues/symfony-jsonapi