psx 3.0.1

PSX is a framework written in PHP to create RESTful APIs. It provides tools to handle routing, API versioning, data transformation, authentication, documentation and testing. With PSX you can easily build an REST API around an existing application or create a new one from scratch.

Tags php rest api framework oauth
License GNU GPLv3
State stable

Recent Releases

3.0.116 Apr 2017 11:25 minor feature: Generate swagger 2.0 and raml 1.0 specifications. Updated psx schema and data library. Removed wsdl and xsd generation.
3.0.026 Dec 2016 06:45 minor feature: Generate swagger 2.0 and raml 1.0 specifications. Updated psx schema and data library. Removed wsdl and xsd generation.
2.0.009 May 2016 21:25 minor feature: Split the framework into components. Decoupled and improved each component. Reading and writing data works now with POPOs. Add generator to generate PHP classes from a RAML and JsonSchema specification. Removed command system. Improved documentation.
2.0.0-RC130 Apr 2016 15:45 minor feature: Added version handling to annotation and raml parser. The pseudo ANY request method includes now also HEAD. graph traverse handling with JsonSerializable objects. Extended and improved test cases.
1.2.318 Feb 2016 23:25 minor feature: Added version handling to annotation and raml parser. The pseudo ANY request method includes now also HEAD. graph traverse handling with JsonSerializable objects. Extended and improved test cases.
1.2.208 Feb 2016 20:25 minor feature: Add pseudo ANY request method to the routing parser. Removed annotation loader. Dispatcher add option to disable sending the response to the client. Add SoapProxyController which handles all SOAP communication. Add option to restrict fields at the table abstract class.
1.2.025 Jan 2016 06:45 minor feature: Add annotation API controller which can be used to specify the API behaviour through annotations. Improved api generation command. Add doctrine annotation reader for annotation parsing. Unify doctrine cache usage and improve entity manager integration. Oauth2 token endpoint handle also client_id and client_secret parameter.
1.1.431 Dec 2015 09:45 minor feature: The schema API handles now automatically HEAD requests. Add support for PATCH request method. automatic template detection for psr4 namespaces. Renamed doCreate and doUpdate method to doPost and doPut to follow the http request method naming scheme. Json schema document throw an exception if a json pointer could not be resolved.
1.1.122 Nov 2015 23:05 minor feature: Add logger configuration settings and factory. Add json patch and pointer implementation. The accessor uses now also the json pointer syntax. Add record serializer and add transformer which builds a record graph from arbitrary data. Add option to attach a validator to the importer inside a controller. Make ImporterManager immutable so that it is not possible to globally change a importer object. Improved validator. Renamed some classes for PHP7 compatibility. Removed class PSX Data Object and added static factory method fromArray to PSX Data Record. Adjust visitor exception messages.
1.1.006 Oct 2015 13:25 minor feature: Curve array nest method handle indexed arrays. JSON Schema add title property to complex types. Documentation controller returns also the API endpoint url. XML generator validate element names. Documentation controller returns now the complete json schema which can be used by the API client to generate a documentation. Improved swagger and json schema generator. Extended api resource methods.
1.0.726 Aug 2015 18:45 minor feature: Improved condition class. Schema html generator traversing nested schema properties.
1.0.604 Aug 2015 11:05 minor feature: Fix schema parse read description of array and scalar types. Add any schema property type. Messages of StatusCodeException are now shown to the user when in production mode. Add title and required parameter to accessor. Set controllerClass variable for template writers.
1.0.406 Jul 2015 03:45 minor feature: Switched to PSR-2 coding style and using absolute class paths in phpdocs. Improve controller test cases. Add RecordInterface access to Accessor. Add JsonSerializable interface to record abstract. For incoming requests an exception is now throw if the data structure contains keys which are not available in the schema. Add development status for an API resource.
1.0.315 Jun 2015 10:05 minor feature: Added new ChoiceType property which allows different kinds of objects as value. Use same logic for traversing incoming and outgoing data. Moved schema property methods assimilate and validate into seperate class. Improved record factory factory class which uses now the object build to get arbitrary dependencies. Implemented factory to convert requests into PSR-7 objects and vice versa. Improved many test cases.
1.0.227 May 2015 08:05 minor feature: Fixed bug that the wrong base path was used when an json schema was included in an RAML file.
1.0.123 May 2015 18:45 minor bugfix: Added raml file parameter for api generation command. Improved raml parser and tests. Add format key to swagger parameter record. Add iterator and countable interface to complex type. Improved raml and swagger generation. Add return this to MethodAbstract::setDescription. Add debug commands to print an raml and jsonschema resource definition. Add console commands to generate different schema representations of the api.
1.0.003 May 2015 07:41 minor feature: Removed unused methods in documentation controller. Added property type factory class. Gain php7 compatibility. Json schema parser add schema version check. Improved schema data, validation and api controller test cases. Fixed datetime wrong behaviour without constructor args.
1.0.0-RC124 Apr 2015 07:25 minor feature: Updated documentation. Improved controller tests. Container test case preserve config values between unit tests. Moved test bootstrap code into seperate class.
0.9.1018 Apr 2015 13:25 minor feature: Added getConnection method to table manager to enable easy transaction handling. Moved cache logic from table manager into seperate reader class. Added exception converter service which converts an exception into an record which gets used to display error messages. This makes it easy to change the global error response format. Send correct content type on exception or send 415 status code. Handle Accept headers with +json or +xml media types correctly . Added jsonx format to default api controller. Added http StreamInterface and remove psr http dependency. Updated bootstrap cache generator file list. Resource listing controller documentation create context in seperate method which can be overloaded.
0.9.906 Apr 2015 06:05 minor feature: Handle different successful status codes in schema api. Updated manual. Removed html presentations from tool controllers. Fixed xml writer nested array definitions. Removed rest client controller since it contains no logic. Improved raml parser. Improved json schema parse resolve external resources. Supports file:// and http:// protocol.
0.9.801 Apr 2015 00:05 minor feature: Added raml and json schema parser. Improved html output added psx- prefix for css classes. Renamed Api View to Api Resource and redesigned classes containing the schema. It is now possible to set an response schema for each status code. Add possibility to cache resource listing results. Improved tool controllers. Renamed RestController to RestClientController. Fixed bug in request factory where sub paths are not handeled correctly.
0.9.723 Mar 2015 09:25 minor feature: Added record graph traverser class and various visitor implementations which are used to produce data from an object graph. Improved internal data representation for incoming and outgoing data. Added content type aware fallback template generator and move fallback generation to the html writer. Improved request factory added automatic protocol detection if "psx_url" is i.e. //foo.com and use buffered reader for request body. Table abstract returns now record classes instead of associative arrays. Log request and response body if in debug mode. Added jsonx support. Improved streams and added buffered stream implementation. Added logcaster monolog listener. Updated PSR http-message to the current version of the spec. Changed license from GPLv3 to Apache 2.0.
0.9.623 Feb 2015 20:22 minor feature: Improved documentation and added raml generator. Also improved and unified api view generators. Added Swagger generator and updated related data models. Added table api abstract controller, resource listing class and improved the api documentation, swagger and wsdl controller. Move generation of the fallback template into a seperate class. Improved activitystreams test and implementation. Removed location and added context class which holds parameters gathered around the controller/command.
0.9.510 Feb 2015 03:18 minor feature: Added HTTP request/response interfaces and added an factory to convert PSX HTTP request/responses into PSR-7 request/responses Added HTTP stream handler which uses the native HTTP stream wrapper Added missing HTTP status codes Add support for array and object sql table column types Added primary key filter which checks whether an id exists in an table Used dbal query builder in various places for better db vendor support Added plain text writer
0.9.416 Jan 2015 17:45 minor feature: Sql table query methods return now an array instead of RecordInterface Added media type class and improved content negotiation Improved JWT implementation Removed unused methods from Base class which now contains only the getVersion method Added rfc3986 compatbile URI resolver class Improved URI/URL/URN classes. Changed URL parameter getter/setter methods from getParam to getParameter etc. Removed output method from xml writer and improved atom writer/entry Added http cookie parser class Added http stream util class to simplify working with streams Added application stack interface Updated dbal to version 2.5 Added various middleware filter implementations Improved tests Add CurveArray class to nest or flatten an array Updated api doc controller template
0.9.330 Nov 2014 10:32 minor feature: This release adds commands to generate boilerplate source code for i.e. controller or commands. When the default writer gets now determined it respects the list of supported writers. Also a priority queue was implemented to give reader and write a priority in which order they get used. The default html template file extension was changed from .tpl to .html. An abstract template writer was added which can be used to generate an output with an template engine. Also an svg writer was added which uses the abstract template writer. It is now possible to set an content negotiation rule for an specific writer. And a command was added to generate an bootstrap cache which can be included at startup to increase performance.