inveniem/guzzle-description-loader

Load guzzle service description from various file formats

v1.0.0 2023-05-24 02:58 UTC

This package is not auto-updated.

Last update: 2024-12-19 08:21:29 UTC


README

A stand-alone Service Description loader for Guzzle with compatibility for Symfony 4.x, 5.x, and 6.x.

Installation

If you are using Composer, and you should, just run the following command:

composer require "inveniem/guzzle-description-loader"

Supported File Formats

  • Yaml
  • Php
  • Json

Usage

use Guzzle\Service\Loader\JsonLoader;
use GuzzleHttp\Command\Guzzle\Description;
use Symfony\Component\Config\FileLocator;

$configDirectories = array(DESCRIPTION_PATH);
$this->locator = new FileLocator($configDirectories);

$this->jsonLoader = new JsonLoader($this->locator);

$description = $this->jsonLoader->load($this->locator->locate('description.json'));
$description = new Description($description);

Sample

{
  "operations": {
    "certificates.list": {
      "httpMethod": "GET",
      "uri": "certificates",
      "description": "Lists and returns basic information about all of the management certificates associated with the specified subscription.",
      "responseModel": "CertificateList"
    }
  },
  "models": {
    "CertificateList": {
      "type": "array",
      "name": "certificates",
      "sentAs": "SubscriptionCertificate",
      "location": "xml",
      "items": {
        "type": "object"
      }
    }
  },
  "imports": [
    "description_import.json"
  ]
}