Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Annotations #29

Open
davidbarratt opened this issue Jan 15, 2017 · 2 comments
Open

Annotations #29

davidbarratt opened this issue Jan 15, 2017 · 2 comments

Comments

@davidbarratt
Copy link

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.

@kafoso
Copy link

kafoso commented Apr 6, 2017

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
Copy link

Toilal commented Apr 21, 2017

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
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants