Skip to content
forked from loco/swizzle

Build Guzzle service descriptions from Swagger compliant APIs

License

Notifications You must be signed in to change notification settings

ophilippsen/swizzle

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Swizzle

Build Guzzle service descriptions from Swagger compliant APIs.

What?

  • Guzzle is a framework for building HTTP clients in PHP.
  • Swagger is a specification for describing RESTful services.

Although Guzzle's service descriptions are heavily inspiried by the Swagger spec, they are different enough that we need something to bridge the divide.

Swizzle crawls JSON Swagger docs (such as ours) and transforms it into a Guzzle service description for output into your client code.

Installation

Installation is via Composer.

Add the latest stable version of loco/swizzle to your project's composer.json file as follows:

{
  "require": {
    "loco/swizzle": "~1.0"
  }
}

If you want to install straight from Github you'll have to write your own autoloader for now.

Usage

Basic usage is to configure, build and export - as follows:

$service = new Loco\Utils\Swizzle\Swizzle( 'foo', 'Foo API' );
$service->build('http://foo.bar/path/to/swagger/docs/');
echo $service->export();

More advanced usage includes registering custom Guzzle classes for commands and responses. See example directory for fuller, working examples.

Build the PHP API documentation with apigen using apigen -c apigen.yml

Limitations

This version was developed very quickly for our own API specifically. That means it's not guaranteed to support the whole Swagger spec.

This version was written for Guzzle 3, but the Guzzle project has since moved on to version 4.

About

Build Guzzle service descriptions from Swagger compliant APIs

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%