2017 © Pedro Peláez
 

library laravel-json-api-parser

Laravel integration for the jsonapi.org parser

image

drpdigital/laravel-json-api-parser

Laravel integration for the jsonapi.org parser

  • Thursday, July 5, 2018
  • by CWDN
  • Repository
  • 3 Watchers
  • 0 Stars
  • 279 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 1 Open issues
  • 4 Versions
  • 34 % Grown

The README.md

JSON API parser for Laravel

Build Status Coverage Status GitHub Releases License, (*1)

This is a Laravel framework integration for the JSON API parser., (*2)

The JSON API parser allows you to read and validate requests that are structured with the jsonapi.org specification., (*3)

Version compatibility

JSON API Parser version Laravel Version PHP Version
1.X 5.1 - 5.6 >= 5.6

Installation

You install the package by using composer:, (*4)

composer require drpdigital/laravel-json-api-parser

If you are using Laravel 5.5 onwards the package will automatically register itself., (*5)

If you are on Laravel 5.4 or lower then you will need to register the service provider in your config/app.php, (*6)

'providers' => [
    ...
    \Drp\LaravelJsonApiParser\JsonApiParserServiceProvider::class,
    ...
]

Documentation

How to validate your resources

When wanting to validate a resource within your payload, you need to give the JsonApiValidator a ValidatorExecutor. This can be done in a few ways specified below. With all of these the first parameter is a string of the type of resource it needs to validate., (*7)

So for example if you had a request like:, (*8)

{
  "data": {
    "id": 1,
    "type": "user",
    "attributes": {
      "name": "Bob"
    }
  }
}

Then your first parameter would be 'user'., (*9)

Using ::make

$jsonApiValidator = app(JsonApiValidator::class);
$jsonApiValidator->validator(
    'user',
    \Drp\LaravelJsonApiParser\Validation\Validator::make(
        ['name' => 'required'],
        ['name.required' => 'You must provide a name']
    )
);

The rules and messages you provide are whatever Laravel can support as our validator is just a decorated for Laravel's., (*10)

Using custom class

When using a custom validator class you will need to extend our validator class \Drp\LaravelJsonApiParser\Validation\Validator. You then specify a rules and messages function inside the class and return an array of rules and messages in their respective functions., (*11)

<?php

namespace App\Validators;

use Drp\LaravelJsonApiParser\Validation\Validator;

class UserValidator extends Validator
{
    public function rules()
    {
        return [
            'name' => 'required',
        ];
    }

    public function messages()
    {
        return [
           'name.required' => 'Testing Message',
        ];
    }
}
$jsonApiValidator = app(JsonApiValidator::class);
$jsonApiValidator->validator(
    'user',
    new UserValidator()
);

How to resolve your resources into Models

For more documentation on how to use the JSON API parser please visit the base package's repository., (*12)

Sample Usage

The request:, (*13)

{
  "data": {
    "type": "brochure",
    "attributes": {
      "title": "My Brochure",
      "page_size": "A4"
    }
  }
}

The handler:, (*14)

public function store(Request $request) : array
{
    $collection = json_api()
        ->resolver('brochure', function (array $data) {
            return Brochure::create($data);
        })->parse($request->json()->all());
}

Contributing

Raise any issues or feature requests within GitHub and please follow our guidelines when contributing., (*15)

If you have found a security vulnerability with the package please email Chris directly at chris.normansell@drpgroup.com, (*16)

License

The Laravel JSON API Parser integration and it's base package are both realted under the [MIT License]., (*17)

The Versions

05/07 2018

dev-master

9999999-dev

Laravel integration for the jsonapi.org parser

  Sources   Download

MIT

The Requires

 

The Development Requires

by Chris Normansell

laravel api parser json drpdigital json api parser laravel-json-api-parser

05/07 2018

0.0.3

0.0.3.0

Laravel integration for the jsonapi.org parser

  Sources   Download

MIT

The Requires

 

The Development Requires

by Chris Normansell

laravel api parser json drpdigital json api parser laravel-json-api-parser

08/01 2018

0.0.2

0.0.2.0

Laravel integration for the jsonapi.org parser

  Sources   Download

MIT

The Requires

 

The Development Requires

by Chris Normansell

laravel api parser json drpdigital json api parser laravel-json-api-parser

08/01 2018

0.0.1

0.0.1.0

Laravel integration for the jsonapi.org parser

  Sources   Download

MIT

The Requires

 

The Development Requires

by Chris Normansell

laravel api parser json drpdigital json api parser laravel-json-api-parser