Giter Club home page Giter Club logo

vue-openapi's Introduction

OpenAPI viewer component for VueJS

This Vue.js component is designed to easily browse and test a REST API described with the OpenAPI 3.0 Specification (formerly known as Swagger Specification). This component follows Google Material Design principles and relies on the Vue Material framework. It also relies on vue-resource to perform API requests.

See it in action :

Install

npm :

$ npm install --save vue-openapi

Usage

import Vue from 'vue'
import VueMaterial from 'vue-material'
import OpenApi from 'vue-openapi'
import 'vue-material/dist/vue-material.css'
import VueResource from 'vue-resource'

import jsonApi from './swagger.json'

Vue.use(VueMaterial)
Vue.use(VueResource)

new Vue({
  el: '#app',
  template: '<open-api v-if="jsonApi" :api="jsonApi" md-theme="\'default\'" :query-params="queryParams" :headers="headers"></open-api>',
  data: () => ({
    jsonApi: jsonApi,
    queryParams: {
      userId: 'john_doe'
    },
    headers: {
      api_key: 'my_api_key'
    }
  }),
  components: {
    OpenApi
  }
})

Develop

Run webpack in watch mode:

npm run dev

Then open test/index.html in your browser.

To switch between examples, modify the import "jsonApi" in test/app.js.

License

MIT License

Resources

Similar projects

This project has been inspired by the following projects :

vue-openapi's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vue-openapi's Issues

OpenAPI 3.0.0-RC0 (or later) compatibility

I've been following your project with keen interest, as I am writing a converter (and validator) for Swagger 2.0 to OpenAPI 3.0.x.

I'm not sure if this is the right time to raise this issue, as you may not want to track Release Candidate versions of the specification, and even if so, the error may be in my validator or my reading of the OpenAPI Specification.

There is a hosted version of the validator tool here which has an API for validating OpenAPI 3.0.x specs.

The result of running against your spec is as reported here (first error only):

{
  "status": false,
  "message": "expected Object {\n  tags: Array [ 'pet' ],\n  summary: 'Finds Pets by status',\n  description: 'Multiple status values can be provided with comma separated strings',\n  operationId: 'findPetsByStatus',\n  produces: Array [ 'application/xml', 'application/json' ],\n  parameters: Array [\n    Object {\n      name: 'status',\n      in: 'query',\n      description: 'Status values that need to be considered for filter',\n      required: true,\n      type: 'array',\n      items: Object {\n        type: 'string',\n        enum: Array [ 'available', 'pending', 'sold' ],\n        default: 'available'\n      },\n      collectionFormat: 'multi'\n    }\n  ],\n  responses: Object {\n    '200': Object {\n      description: 'successful operation',\n      schema: Object {\n        type: 'array',\n        items: Object { $ref: '#/components/definitions/Pet' }\n      }\n    },\n    '400': Object { description: 'Invalid status value' }\n  },\n  security: Array [\n    Object { petstore_auth: Array [ 'write:pets', 'read:pets' ] }\n  ]\n} not to have property produces (false negative fail)",
  "context": "#/paths/~1pet~1findByStatus/get"
}

Thus the badge functionality currently returns

badge

I have tried comparing your v3 Petstore spec to my converted version, and other issues include formData parameters, which have been removed from the spec.

Keen to hear your thoughts.

Vue 2.2.* support?

Has this plugin been tested on Vue 2.2.1? Can't seem to get it working :/

Improve schema display

Schema are currently dereferenced and showed as stringified JSON. But the process is not recursive and references inside object are not resolved.

References should be replaced by a link or title, and corresponding object should be displayed bellow. The list of object types could be expandable

Specify body in requests

When a path require a body in request, it is currently not possible to specify it.

We could use a textarea filled by default with an object generated from schema.

Support for Vue2?

TypeError: _vue2.default.material.registerTheme is not a function
Unknown custom element:

maybe vue-material isn't supported in vue2?

Show full request url

when pressing "make request" button, we should show the generated URL with the query parameters

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.