Code Monkey home page Code Monkey logo

swizzle's Introduction

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 them into a compatible schema for use with guzzle/guzzle-services.

Important! This library is for use with v1.2 of the Swagger specification which is obsolete.

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": "~2.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/');
// Serialize Guzzle service config to json
$json = $service->toJson();
file_put_contents('/path/to/config.json', $builder->toJson());
// Now use saved config.json in your project/library to create Guzzle service.

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 library supports only version 1.2 of the old Swagger specification. We developed this very quickly for our own needs, and haven't kept up with the newer OpenAPI project.

swizzle's People

Contributors

supersmile2009 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.