2017 © Pedro Peláez
 

library unimapper-nette

Official Nette extension for UniMapper

image

bauer01/unimapper-nette

Official Nette extension for UniMapper

  • Thursday, January 26, 2017
  • by bauer01
  • Repository
  • 4 Watchers
  • 1 Stars
  • 1,363 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 2 Open issues
  • 18 Versions
  • 0 % Grown

The README.md

Unimapper Nette extension

Build Status, (*1)

Official Unimapper extension for Nette framework., (*2)

Install

$ composer require unimapper/nette:@dev

Nette 2.1 and higher

Register extension in config.neon., (*3)

extensions:
    unimapper: UniMapper\Nette\Extension

Nette 2.0

Register extension in app/bootstrap.php., (*4)

UniMapper\Nette\Extension::register($configurator);

return $configurator->createContainer();

Configuration

unimapper:
    adapters:
        Mongo: @service
        MySQL: @anotherService
        ...
    cache: true
    namingConvention:
        entity: 'YourApp\Model\*'
        repository: 'YourApp\Repository\*Repository'
    api:
        enabled: false
        module: "Api"
        route: true
    panel:
        enabled: true
        ajax: true # log queries in AJAX requests
    profiler: true
    customQueries:
        - CustomQueryClass
        - ...

API

Creating new API for your application is very easy, all you need is presenter for every entity you have., (*5)

Remember that every API presenter should always extend UniMapper\Nette\Api\Presenter., (*6)

namespace YourApp\ApiModule\Presenter;

class EntityPresenter extends \UniMapper\Nette\Api\Presenter
{
    ...
}

Now you can call standard API methods like:, (*7)

GET

  • associate - common parameter used to tell which association should be included in response. Syntax should be like ?associate[]=property1&associate[]=property2 or ?associate=property1,property2.

** Response**, (*8)

{
    "body": {..}
}

/api/entity/id

Get a single record., (*9)

/api/entity

Get all records., (*10)

  • count - optional parameter, if ?count=true set then items count number will be returned in response body instead data.
  • limit - maximum limit is set to 10. You can change it by overriding property $maxLimit in your API presenter descendant.
  • offset
  • where

PUT

/api/entity

Update all records with JSON data stored in request body. Filtering can be set and response body contains number of affected records., (*11)

** Response**, (*12)

{
    "body": 3,
    "success": true
}

/api/entity/id

Update single record with JSON data stored in request body., (*13)

** Response**, (*14)

{
    "success": true
}

POST

Create new record with JSON data stored in request body and primary value of new entity returned in response body., (*15)

/api/entity

** Response**, (*16)

{
    "success": true,
    "link": "url to created entity",
    "body": "id of created entity"
}

DELETE

/api/entity

Delete all records returned body contains number of deleted records., (*17)

** Response**, (*18)

{
    "body": {..}
    "success": true
}

/api/entity/id

Delete single record., (*19)

** Response**, (*20)

{
    "success": true
}

Custom API methods

You can even define your custom method., (*21)

namespace YourApp\ApiModule\Presenter;

class EntityPresenter extends \UniMapper\Nette\Api\Presenter
{
    public function actionYourCustomMethod($id)
    {
        ...
    }
}

Then you can make a requests like /api/entity/1?action=yourCustomMehod., (*22)

Filtering data

Filter can be set as a GET parameter where in URL. It should be here a valid JSON format as described here., (*23)

Error response

If some bad request detected or an error occurred the returned response can be like this:, (*24)

{
    "success": false
    "code": 405,
    "messages": []
}

In your templates just use standard Nette link macro., (*25)

  • {link :Api:Entity:get}
  • {link :Api:Entity:get 1}
  • {link :Api:Entity:put 1}
  • {link :Api:Entity:post}
  • {link :Api:Entity:action}

Usage

You can even build another applications using this API, just register an official API adapter class UniMapper\Nette\Api\Adapter in your config.neon., (*26)

Custom request factory

For easier API queries you can register factory interface as a dynamic service in your config.neon., (*27)

services:
    - UniMapper\Nette\Api\ICustomRequestFactory

Usage in your reopistory can look like this:, (*28)

class SomeRepository extends \UniMapper\Repository
{
    private $requestFactory;

    public function __construct(
        \UniMapper\Connection $connection,
        \UniMapper\Nette\Api\ICustomRequestFactory $requestFactory
    ) {
        parent::__construct($connection);
        $this->requestFactory;
    }

    public function getSomethingFromApi()
    {
        $this->requestFactory()->setResource("apiResource")->setAction("custom")->send();
    }
}

The Versions

26/01 2017

dev-develop

dev-develop

Official Nette extension for UniMapper

  Sources   Download

MIT

The Requires

  • php >=5.4.0
  • ext-curl *

 

The Development Requires

extension php nette unimapper

02/12 2015

v1.2.1

1.2.1.0

Official Nette extension for UniMapper

  Sources   Download

MIT

The Requires

  • php >=5.4.0
  • ext-curl *

 

The Development Requires

extension php nette unimapper

02/12 2015

dev-master

9999999-dev

Official Nette extension for UniMapper

  Sources   Download

MIT

The Requires

  • php >=5.4.0
  • ext-curl *

 

The Development Requires

extension php nette unimapper

29/10 2015

v1.2.0

1.2.0.0

Official Nette extension for UniMapper

  Sources   Download

MIT

The Requires

  • php >=5.4.0
  • ext-curl *

 

The Development Requires

extension php nette unimapper

03/09 2015

v1.1.2

1.1.2.0

Official Nette extension for UniMapper

  Sources   Download

MIT

The Requires

  • php >=5.4.0
  • ext-curl *

 

The Development Requires

extension php nette unimapper

28/07 2015

1.1.1

1.1.1.0

Official Nette extension for UniMapper

  Sources   Download

MIT

The Requires

  • php >=5.4.0
  • ext-curl *

 

The Development Requires

extension php nette unimapper

07/07 2015

v1.1.0

1.1.0.0

Official Nette extension for UniMapper

  Sources   Download

MIT

The Requires

  • php >=5.4.0
  • ext-curl *

 

The Development Requires

extension php nette unimapper

23/06 2015

v1.0.10

1.0.10.0

Official Nette extension for UniMapper

  Sources   Download

MIT

The Requires

  • php >=5.4.0
  • ext-curl *

 

The Development Requires

extension php nette unimapper

18/06 2015

v1.0.9

1.0.9.0

Official Nette extension for UniMapper

  Sources   Download

MIT

The Requires

  • php >=5.4.0
  • ext-curl *

 

The Development Requires

extension php nette unimapper

17/06 2015

v1.0.7

1.0.7.0

Official Nette extension for UniMapper

  Sources   Download

MIT

The Requires

  • php >=5.4.0
  • ext-curl *

 

The Development Requires

extension php nette unimapper

17/06 2015

v1.0.8

1.0.8.0

Official Nette extension for UniMapper

  Sources   Download

MIT

The Requires

  • php >=5.4.0
  • ext-curl *

 

The Development Requires

extension php nette unimapper

08/06 2015

v1.0.6

1.0.6.0

Official Nette extension for UniMapper

  Sources   Download

MIT

The Requires

  • php >=5.4.0
  • ext-curl *

 

The Development Requires

extension php nette unimapper

05/06 2015

v1.0.5

1.0.5.0

Official Nette extension for UniMapper

  Sources   Download

MIT

The Requires

  • php >=5.4.0
  • ext-curl *

 

The Development Requires

extension php nette unimapper

02/06 2015

v1.0.4

1.0.4.0

Official Nette extension for UniMapper

  Sources   Download

MIT

The Requires

  • php >=5.4.0
  • ext-curl *

 

The Development Requires

extension php nette unimapper

07/05 2015

v1.0.3

1.0.3.0

Official Nette extension for UniMapper

  Sources   Download

MIT

The Requires

  • php >=5.4.0
  • ext-curl *

 

The Development Requires

extension php nette unimapper

30/03 2015

v1.0.2

1.0.2.0

Official Nette extension for UniMapper

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

extension php nette unimapper

10/03 2015

v1.0.1

1.0.1.0

Official Nette extension for UniMapper

  Sources   Download

MIT

The Requires

 

The Development Requires

extension php nette unimapper

15/01 2015

v1.0.0

1.0.0.0

Official Nette extension for UniMapper

  Sources   Download

MIT

The Requires

 

The Development Requires

extension php nette unimapper