Download the PHP package area17/twill-api without Composer
On this page you can find all versions of the php package area17/twill-api. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package twill-api
Twill API
Provide a read-only API to Twill models and entities along with base structure to create your own JSON:API compliant REST API. This package is based on and requires the excellent Laravel JSON:API package.
Installation
This package needs a Laravel project with Twill already set up.
Install Laravel JSON:API
Follow the steps outlined in the Laravel JSON:API documentation.
Update config/jsonapi.php
with the namespace you would like to use.
Install Twill API
Publish config file config/twill-api.php
and migrations. Apply migrations.
Create you base Server.php
class
Update config/jsonapi.php
servers
key with your newly created Server
class.
If you want to make you API public (which is convenient early in development), you can update the authorisable
method in your Server
class.
Add API middlewares you the api
group in app/Http/Kernel.php
. See below for a list of the available middlewares.
Middlewares
Middleware to set locale
To query the API by adding the locale query string to the url. For example https://example.com/api/v1/books?locale=fr
will give you the results available in the French (fr) locale.
Middleware to remove unpublished content
from browser fileds and features.
Traits
Whenever your models has media or files attached to them, you must add the traits provided in this package in order to expose a relationship to the pivot models for each (by default it is the mediables
and fileables
tables).
If your model also have children blocks (saved through repeater inside a block), you must add the HasChildBlocks
for the API to respect the parent/child relation in the API response.
Create a resource schema and API route
To create a basic schema for a new resource (model), use the artisan command twill-api:schema
. Pass the name of the Twill module as the argument.
This command will create app/TwillApi/V1/Snippets/SnippetSchema.php
. The command will display a few instructions to register the new schema with the API server and how to declare the endpoint in you routes/api.php
.
For what is available from there, consult the Laravel JSON:API documentaiton under the Schemas section.
Your new endpoint should now be available at http://localhost/api/v1/snippets
.
Resources
Endpoints
This package provides these endpoints along with their schema:
/api/v1
/api/v1/blocks
/api/v1/blocks/{id}
/api/v1/features
/api/v1/features/{id}
/api/v1/files
/api/v1/files/{id}
/api/v1/media
/api/v1/media/{id}
/api/v1/related-items
/api/v1/related-items/{id}
/api/v1/tags
/api/v1/tags/{id}
/api/v1/settings
/api/v1/settings/{id}
/api/v1/users
/api/v1/users/{id}
Blocks
(to do)
Browser fields (related items)
(to do)
Features
(to do)
Use API tokens to show unpublished content
(to do)
All versions of twill-api with dependencies
area17/twill Version ^3.0|3.x-dev
illuminate/support Version ^10.13
laravel-json-api/laravel Version ^3.0
spatie/laravel-package-tools Version ^1.11