This module provides the admin interface and API service for the Apigility project.
{
"adapter_name": "Service name for the DB adapter",
"database": "Name of the database",
"driver": "Driver used to make the connection"
}
Additionally, any other properties used to create the Zend\Db\Adapter\Adapter
instance may be composed: e.g., "username", "password", etc.
{
"name": "normalized module name",
"namespace": "PHP namespace of the module",
"is_vendor": "boolean value indicating whether or not this is a vendor (3rd party) module",
"versions": [
"Array",
"of",
"available versions"
]
}
Additionally, the module
resource composes relational links for RPC
and REST resources; these use the relations "rpc" and "rest",
respectively.
{
"controller_service_name": "name of the controller service; this is the identifier, and required",
"accept_whitelist": [
"(Optional)",
"List",
"of",
"whitelisted",
"Accept",
"mediatypes"
],
"content_type_whitelist": [
"(Optional)",
"List",
"of",
"whitelisted",
"Content-Type",
"mediatypes"
],
"http_options": [
"(Required)",
"List",
"of",
"allowed",
"Request methods"
],
"route_match": "(Required) String indicating Segment route to match",
"route_name": "(Only in representation) Name of route associated with endpoint",
"selector": "(Optional) Content-Negotiation selector to use; Json by default"
}
{
"controller_service_name": "name of the controller service; this is the identifier, and required",
"accept_whitelist": [
"(Optional)",
"List",
"of",
"whitelisted",
"Accept",
"mediatypes"
],
"adapter_name": "(Only in DB-Connected resources) Name of Zend\\DB adapter service used for this resource",
"collection_class": "(Only in representation) Name of class representing collection",
"collection_http_options": [
"(Required)",
"List",
"of",
"allowed",
"Request methods",
"on collections"
],
"collection_query_whitelist": [
"(Optional)",
"List",
"of",
"whitelisted",
"query string parameters",
"to pass to resource for collections"
],
"content_type_whitelist": [
"(Optional)",
"List",
"of",
"whitelisted",
"Content-Type",
"mediatypes"
],
"entity_class": "(Only in representation) Name of class representing resource entity",
"hydrator_name": "(Only in DB-Connected resources) Name of Zend\\Stdlib\\Hydrator service used for this resource",
"identifier_name": "(Optional) Name of route parameter and entity property representing the resource identifier; defaults to resource_name + _id",
"module": "(Only in representation) Name of module in which resource resides",
"page_size": "(Optional) Integer representing number of entities to return in a given page in a collection; defaults to 25",
"page_size_param": "(Optional) Name of query string parameter used for pagination; defaults to 'page'",
"resource_class": "(Only in representation) Name of class representing resource handling operations",
"resource_http_options": [
"(Required)",
"List",
"of",
"allowed",
"Request methods",
"on individual resources"
],
"route_match": "(Optional) String indicating Segment route to match; defaults to /resource_name[/:identifier_name]",
"route_name": "(Only in representation) Name of route associated with api service",
"selector": "(Optional) Content-Negotiation selector to use; HalJson by default",
"table_name": "(Only in DB-Connected resources) Name of database table used for this resource",
"table_service": "(Only in DB-Connected resources) Name of TableGateway service used for this resource"
}
This endpoint is for examining the application configuration, and providing
overrides of individual values in it. All overrides are written to a single
file, config/autoload/development.php
; you can override that location in your
configuration via the zf-configuration/config-file
key.
-
Accept:
application/json
,application/vnd.zfcampus.v1.config+json
The first will deliver representations as a flat array of key/value pairs, with the keys being dot-separated values, just as you would find in INI.
The second will deliver the configuration as a tree.
-
Content-Type:
application/json
,application/vnd.zfcampus.v1.config+json
The first expects key/value pairs, with keys being dot-separated values, as you would find in INI files.
The second expects a nested array/object of configuration.
-
Methods:
GET
,PATCH
-
Errors:
application/api-problem+json
This REST endpoint is for creating, updating, and deleting named Zend\Db
adapters; it uses the db-adapter resource.
-
Accept
application/json
Returns a db-adapter resource on success.
-
Content-Type:
application/json
Expects db-adapter resource with all details necessary for creating a DB connection.
-
Collection Methods:
GET
,POST
-
Resource Methods:
GET
,PATCH
,DELETE
-
Errors:
application/api-problem+json
This operates exactly like the /admin/api/config
endpoint, but expects a known
module name. When provided, it allows you to introspect and manipulate the
configuration file for that module.
This endpoint is for API-1st-enabling an existing module.
-
Accept:
application/json
Returns a Module resource on success.
-
Content-Type:
application/json
Expects an object with the property "name" describing an existing ZF2 module.
{ "name": "Status" }
-
Methods:
PUT
-
Errors:
application/api-problem+json
This endpoint is for adding a new version to an existing API. If no version is passed in the payload, the version number is simply incremented.
-
Accept:
application/json
Returns the response
{ "success": true, "version": :version: }
on success, an API-Problem payload on error. -
Content-Type:
application/json
Expects an object with the property "module", providing the name of a ZF2, Apigility-enabled module; optionally, a "version" property may also be provided to indicate the specific version string to use.
{ "module": "Status", "version": 10 }
-
Methods:
PATCH
-
Errors:
application/api-problem+json
This is the canonical endpoint for Module resources.
-
Accept:
application/json
Returns either a single Module resource (when a
name
is provided) or a collection of Module resources (when noname
is provided) on success. -
Content-Type:
application/json
Expects an object with the property "name" describing the module to create:
{ "name": "Status" }
-
Collection Methods:
GET
,POST
-
Resource Methods:
GET
-
Errors:
application/api-problem+json
This is the canonical endpoint for RPC resources.
-
Accept:
application/json
Returns either a single RPC resource (when a
controller_service_name
is provided) or a collection of RPC resources (when nocontroller_service_name
is provided) on success. -
Content-Type:
application/json
Expects an object with the property "service_name" describing the endpoint to create:
{ "service_name": "Status" }
You may also provide any other options listed in the RPC resource.
-
Collection Methods:
GET
,POST
-
Resource Methods:
GET
,PATCH
-
The query string variable
version
may be passed to the collection to filter results by version: e.g.,/admin/api/module/:name/rpc?version=2
. -
Errors:
application/api-problem+json
This is the canonical endpoint for REST resources.
Can be used for any type of REST resource, including DB-Connected (and, in the future, Mongo-Connected).
DB-Connected resources expect the following additional properties (and will return them as well):
-
adapter_name
: A named DB adapter service. -
table_name
: The DB table associated with this service. -
hydrator_name
: Optional; the name of a hydrator service used to hydrate rows returned by the database; defaults to ArraySerializable. -
table_service
: Optional; this is auto-generated by default, but an alternate TableGateway service may be provided. -
Accept:
application/json
Returns either a single REST resource (when a
controller_service_name
is provided) or a collection of REST resources (when nocontroller_service_name
is provided) on success. -
Content-Type:
application/json
Expects an object with the property "resource_name" describing the module to create:
{ "resource_name": "Status" }
You may also provide any other options listed in the REST resource.
-
Collection Methods:
GET
,POST
,DELETE
-
Resource Methods:
GET
,PATCH
-
The query string variable
version
may be passed to the collection to filter results by version: e.g.,/admin/api/module/:name/rest?version=2
. -
Errors:
application/api-problem+json