2017 © Pedro Peláez
 

package api-formats

Package for working with API requests and responses in different formats

image

eoneopay/api-formats

Package for working with API requests and responses in different formats

  • Wednesday, June 27, 2018
  • by loyaltycorp
  • Repository
  • 3 Watchers
  • 1 Stars
  • 143 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 1 % Grown

The README.md

API Formats

Installation

Use Composer to install the package in your project:, (*1)

composer require eoneopay/apiformats

Formats

By default the package handle JSON (application/json) and XML (application/xml, text/xml) formats. If you want to handle different formats or want to implement your own JSON/XML encoding logic, the only thing you need to do is creating your encoder implementing \EoneoPay\ApiFormats\Interfaces\RequestEncoderInterface and tell the package to use it, with which Mime types as explained in the Configuration section., (*2)

Integration

Laravel

To integrate the package into your Laravel or Lumen you need to register the following service provider and middleware:, (*3)

  • ServiceProvider: \EoneoPay\ApiFormats\Bridge\Laravel\Providers\ApiFormatsServiceProvider
  • Middleware: \EoneoPay\ApiFormats\Bridge\Laravel\Middlewares\ApiFormatsMiddleware

That's it! Your application is now able to easily receive requests and generate responses in several formats., (*4)

Formatted Api Response

If you want to customise the generated response as its status code or headers without handling body encoding yourself, the package provides the \EoneoPay\ApiFormats\Bridge\Laravel\Responses\FormattedApiResponse object you can return from your controllers/middlewares. The FormattedApiResponse accept three parameters through its constructor as following:, (*5)

  • $content (mixed): array or object able to be cast as an array
  • $statusCode (int): status code of response, default as 200
  • $headers (array): headers of response, default as empty array

Configuration

The philosophy of the package is to map encoders to a list of MIME types that they can handle through an array as following:, (*6)

$formats = [
    <RequestEncoderInterface> => [<mime_type>, <mime_type>, ...]
];

Each MIME type can be the exact name as application/json or a Regex used to match multiple MIME types as application/vnd.eoneopay.v[0-9]+\+json., (*7)

Laravel

To configure supported formats in your application, create a api-formats.php config file with a formats array using the encoders class as key and array of associated Mime types as value:, (*8)

// config/api-formats.php

return [
    'formats' => [
        JsonRequestEncoder::class => ['application/json'],
        XmlRequestEncoder::class => ['(application|text)/xml'],
        YourCustomerEncoder::class => ['you-custom-mime-type']
    ]
]; 

The Versions

29/01 2018

dev-features/EP-543-as-a-developer-i-want-a-simple-wa

dev-features/EP-543-as-a-developer-i-want-a-simple-wa https://bitbucket.org/eoneopay/api-formats

Api formats from EoneoPay.

  Sources   Download

MIT

The Requires

 

The Development Requires

api formats eoneopay