I’m starting with API Platform and I’m using the example entity “Foo”:
namespace AppBundleEntity; use ApiPlatformCoreAnnotationApiResource; use DoctrineORMMapping as ORM; /** * Foo * * @ORMTable(name="foo") * @ApiResource * @ORMEntity */ class Foo { /** * @var string * * @ORMColumn(name="bar", type="string", length=255, nullable=false) */ private $bar; /** * @var integer * * @ORMColumn(name="id", type="integer") * @ORMId * @ORMGeneratedValue(strategy="IDENTITY") */ private $id; }
I succesfully see the new Entity in dashboard (See image):
And I had the following error when I try to get all Foo collection:
curl -X GET "http://127.0.0.1:8000/foos" -H "accept: application/json" { "type": "https://tools.ietf.org/html/rfc2616#section-10", "title": "An error occurred", "detail": "Unable to generate an IRI for the item of type "AppBundle\Entity\Foo"", "trace": [ { "namespace": "", "short_class": "", "class": "", "type": "", "function": "", "file": "/home/xxxx/api/vendor/api-platform/core/src/Bridge/Symfony/Routing/IriConverter.php", "line": 107, "args": [] },
I tried different formats and check the the routes too:
julian@js:~/xxxxx/api$ ./bin/console debug:router ------------------------------- -------- -------- ------ ----------------------------------- Name Method Scheme Host Path ------------------------------- -------- -------- ------ ----------------------------------- _wdt ANY ANY ANY /_wdt/{token} _profiler_home ANY ANY ANY /_profiler/ _profiler_search ANY ANY ANY /_profiler/search _profiler_search_bar ANY ANY ANY /_profiler/search_bar _profiler_phpinfo ANY ANY ANY /_profiler/phpinfo _profiler_search_results ANY ANY ANY /_profiler/{token}/search/results _profiler_open_file ANY ANY ANY /_profiler/open _profiler ANY ANY ANY /_profiler/{token} _profiler_router ANY ANY ANY /_profiler/{token}/router _profiler_exception ANY ANY ANY /_profiler/{token}/exception _profiler_exception_css ANY ANY ANY /_profiler/{token}/exception.css _twig_error_test ANY ANY ANY /_error/{code}.{_format} api_entrypoint ANY ANY ANY /{index}.{_format} api_doc ANY ANY ANY /docs.{_format} api_jsonld_context ANY ANY ANY /contexts/{shortName}.{_format} api_foos_get_collection GET ANY ANY /foos.{_format} api_foos_post_collection POST ANY ANY /foos.{_format} api_foos_get_item GET ANY ANY /foos/{id}.{_format} api_foos_put_item PUT ANY ANY /foos/{id}.{_format} api_foos_delete_item DELETE ANY ANY /foos/{id}.{_format} ------------------------------- -------- -------- ------ -----------------------------------
It’s possible what I need some special library in my server? What I’m doing wrong?
Thanks in advance!
Advertisement
Answer
You’re missing a getter for your id
public function getId() { return $this->id; }