chubbyphp / chubbyphp-api-slim-skeleton
Installs: 3
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 0
Forks: 0
Open Issues: 0
Type:project
Requires
- php: ~7.0
- chubbyphp/chubbyphp-api-http: ~1.0@beta,>=1.0-beta15
- chubbyphp/chubbyphp-deserialization: ^1.1.1
- chubbyphp/chubbyphp-deserialization-model: ~1.1
- chubbyphp/chubbyphp-lazy: ~1.1
- chubbyphp/chubbyphp-model: ^3.0.1
- chubbyphp/chubbyphp-model-doctrine-dbal: ^1.0.2
- chubbyphp/chubbyphp-serialization: ~1.1
- chubbyphp/chubbyphp-translation: ^1.1.2
- chubbyphp/chubbyphp-validation: ~2.1
- chubbyphp/chubbyphp-validation-model: ^1.0.2
- monolog/monolog: ~1.5
- ramsey/uuid: ~3.0
- silex/providers: ^2.0.3
- slim/slim: ~3.0
- symfony/console: ~2.7|~3.0
- symfony/yaml: ~2.7|~3.0
Requires (Dev)
- phpunit/phpunit: ~6.3
This package is auto-updated.
Last update: 2020-09-22 18:46:36 UTC
README
DEPRECATED use https://github.com/chubbyphp/petstore
chubbyphp/chubbyphp-api-slim-skeleton
Description
A slim 3 skeleton to build web apis.
Requirements
- php: ~7.0
- chubbyphp/chubbyphp-api-http: ~1.0@beta>=1.0-beta15
- chubbyphp/chubbyphp-deserialization: ^1.1.1
- chubbyphp/chubbyphp-deserialization-model: ~1.1
- chubbyphp/chubbyphp-lazy: ~1.1
- chubbyphp/chubbyphp-model: ^3.0.1
- chubbyphp/chubbyphp-model-doctrine-dbal: ^1.0.2
- chubbyphp/chubbyphp-serialization: ~1.1
- chubbyphp/chubbyphp-translation: ^1.1.2
- chubbyphp/chubbyphp-validation: ~2.1
- chubbyphp/chubbyphp-validation-model: ^1.0.2
- monolog/monolog: ~1.5
- ramsey/uuid: 2.0
- silex/providers: ^2.0.3
- slim/slim: ~3.0
- symfony/console: ~2.7|~3.0
- symfony/yaml: ~2.7|~3.0
Installation
composer create-project chubbyphp/chubbyphp-api-slim-skeleton myproject dev-master --prefer-dist
Setup
Create database
bin/console chubbyphp:model:dbal:database:create
Create / Update schema
bin/console chubbyphp:model:dbal:database:schema:update --dump --force
Sample Responses
Index
Json
GET http://chubbyphp-api-slim-skeleton.dev/api
{ "_links": { "self": { "href": "/api", "method": "GET" }, "courses": { "href": "/api/courses", "method": "GET" } }, "_type": "index" }
Xml
GET http://chubbyphp-api-slim-skeleton.dev/api
<?xml version="1.0" encoding="UTF-8"?> <meta-type value="index"> <meta-links> <self> <href type="string">/api</href> <method type="string">GET</method> </self> <courses> <href type="string">/api/courses</href> <method type="string">GET</method> </courses> </meta-links> </meta-type>
Yaml
GET http://chubbyphp-api-slim-skeleton.dev/api
_links: self: href: /api method: GET courses: href: /api/courses method: GET _type: index
Courses
Json
GET http://chubbyphp-api-slim-skeleton.dev/api/courses?page=1&perPage=1
{ "page": 1, "perPage": 1, "sort": null, "order": "asc", "_embedded": { "count": 1, "pages": 1, "courses": [ { "id": "d480082e-ef4f-43e6-96e8-fd2b9fa613ff", "name": "PHP Course", "level": 3, "progress": 0.45, "active": true, "documents": [ { "id": "28031482-6168-47f1-a78b-ea57f38d0ef0", "name": "Choose the right abstraction", "url": "http://test.com/choose-the-right-abstractions.pdf", "_type": "document" } ], "_links": { "read": { "href": "/api/courses/d480082e-ef4f-43e6-96e8-fd2b9fa613ff", "method": "GET" }, "update": { "href": "/api/courses/d480082e-ef4f-43e6-96e8-fd2b9fa613ff", "method": "PATCH" }, "delete": { "href": "/api/courses/d480082e-ef4f-43e6-96e8-fd2b9fa613ff", "method": "DELETE" } }, "_type": "course" } ] }, "_links": { "self": { "href": "/api/courses?page=1&perPage=1&order=asc", "method": "GET" }, "create": { "href": "/api/courses", "method": "POST" } }, "_type": "course-search" }
Xml
GET http://chubbyphp-api-slim-skeleton.dev/api/courses?page=1&perPage=1
<?xml version="1.0" encoding="UTF-8"?> <meta-type value="course-search"> <page type="integer">1</page> <perPage type="integer">1</perPage> <sort></sort> <order type="string">asc</order> <meta-embedded> <count type="integer">1</count> <pages type="integer">1</pages> <courses> <meta-type value="course" key="0"> <id type="string">d480082e-ef4f-43e6-96e8-fd2b9fa613ff</id> <name type="string">PHP Course</name> <level type="integer">3</level> <progress type="float">0.45</progress> <active type="boolean">true</active> <documents> <meta-type value="document" key="0"> <id type="string">28031482-6168-47f1-a78b-ea57f38d0ef0</id> <name type="string">Choose the right abstraction</name> <url type="string">http://test.com/choose-the-right-abstractions.pdf</url> </meta-type> </documents> <meta-links> <read> <href type="string">/api/courses/d480082e-ef4f-43e6-96e8-fd2b9fa613ff</href> <method type="string">GET</method> </read> <update> <href type="string">/api/courses/d480082e-ef4f-43e6-96e8-fd2b9fa613ff</href> <method type="string">PATCH</method> </update> <delete> <href type="string">/api/courses/d480082e-ef4f-43e6-96e8-fd2b9fa613ff</href> <method type="string">DELETE</method> </delete> </meta-links> </meta-type> </courses> </meta-embedded> <meta-links> <self> <href type="string"> <![CDATA[/api/courses?page=1&perPage=1&order=asc]]> </href> <method type="string">GET</method> </self> <create> <href type="string">/api/courses</href> <method type="string">POST</method> </create> </meta-links> </meta-type>
Yaml
GET http://chubbyphp-api-slim-skeleton.dev/api/courses?page=1&perPage=1
page: 1 perPage: 1 sort: null order: asc _embedded: count: 1 pages: 1 courses: - id: d480082e-ef4f-43e6-96e8-fd2b9fa613ff name: 'PHP Course' level: 3 progress: 0.45 active: true documents: - id: 28031482-6168-47f1-a78b-ea57f38d0ef0 name: 'Choose the right abstraction' url: 'http://test.com/choose-the-right-abstractions.pdf' _type: document _links: read: href: /api/courses/d480082e-ef4f-43e6-96e8-fd2b9fa613ff method: GET update: href: /api/courses/d480082e-ef4f-43e6-96e8-fd2b9fa613ff method: PATCH delete: href: /api/courses/d480082e-ef4f-43e6-96e8-fd2b9fa613ff method: DELETE _type: course _links: self: href: '/api/courses?page=1&perPage=1&order=asc' method: GET create: href: /api/courses method: POST _type: course-search