Coder Social home page Coder Social logo

swagger-generator's Introduction

InfyOm

Swagger Generator for InfyOm Laravel Generator

Total Downloads Monthly Downloads Daily Downloads License

Generate Swagger Docs for APIs along with Generating CRUD APIs with InfyOm Laravel Generator.

Documentation

Read Documentation for detailed installation steps and usage.

Support Us

We have created 14+ Laravel packages and invested a lot of resources into creating these all packages and maintaining them.

You can support us by either sponsoring us or buying one of our paid products. Or help us by spreading the word about us on social platforms via tweets and posts.

Buy our Paid Products

InfyGPT

You can also check out our other paid products on CodeCanyon.

Sponsors

Become a sponsor and get your logo on our README on Github with a link to your site.

Backers

Become a backer and get your image on our README on Github with a link to your site.

Follow Us

Made with InfyOm Generator

Also, Do not forget to add your website to Made with InfyOm Generator List list.

Security

If you discover any security-related issues, create an issue using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

swagger-generator's People

Contributors

ankitinfyom avatar choiks14 avatar mitulgolakiya avatar vishalinfyom avatar

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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

swagger-generator's Issues

laravel-generator Version Matching Problem

  • laravel: ^7.0
  • infyomlabs/laravel-generator: ^2.0
  • infyomlabs/swagger-generator: ^2.0

This is the version that I saw in the document.But he can't generate documents properly.
swagger generator property.stub

 *      @OA\Property(
 *          property="$FIELD_NAME$",
 *          description="$DESCRIPTION$",
 *          readOnly=$FIELD_READ_ONLY$,
 *          nullable=$FIELD_NULLABLE$,
 *          type="$FIELD_TYPE$"$FIELD_FORMAT$
 *      )

$FIELD_READ_ONLY$ and $FIELD_NULLABLE$, Not replaced

Model swagger docs should have 2 definitions: 1 for writeable only and 1 for all

Each model should have 2 definitions. The first definition will contain only writeable by user properties and the second definition will contain all properties with reference to writeable ones.

This helps to tell API consumers to send only writeable properties to CREATE & UPDATE request in Swagger UI.

Example of swagger definitions.

/**
 * @SWG\Definition(
 *      definition="Project:write",
 *      required={"name"},
 *      @SWG\Property(
 *          property="name",
 *          description="name",
 *          type="string"
 *      ),
 *      @SWG\Property(
 *          property="description",
 *          description="description",
 *          type="string"
 *      ),
 *      @SWG\Property(
 *          property="starts_at",
 *          description="starts_at",
 *          type="string",
 *          format="date-time"
 *      ),
 *      @SWG\Property(
 *          property="ends_at",
 *          description="ends_at",
 *          type="string",
 *          format="date-time"
 *      ),
 *      @SWG\Property(
 *          property="expertise_id",
 *          description="expertise_id",
 *          type="integer",
 *          format="int32"
 *      ),
 *      @SWG\Property(
 *          property="user_id",
 *          description="user_id",
 *          type="integer",
 *          format="int32"
 *      )
 * )
 *
 * @SWG\Definition(
 *      definition="Project",
 *      required={"name"},
 *      allOf={
 *          @SWG\Schema(ref="#/definitions/Project:write")
 *      },
 *      @SWG\Property(
 *          property="id",
 *          description="id",
 *          type="integer",
 *          format="int32"
 *      ),
 *      @SWG\Property(
 *          property="created_at",
 *          description="created_at",
 *          type="string",
 *          format="date-time"
 *      ),
 *      @SWG\Property(
 *          property="updated_at",
 *          description="updated_at",
 *          type="string",
 *          format="date-time"
 *      )
 * )
 */
`
``

SS for Swagger UI of CREATE endpoint
![image](https://user-images.githubusercontent.com/2726365/79454217-8007d980-7ff3-11ea-8298-050a31e18070.png)

Error generating Swagger using Generator Builder

×Fail! file_get_contents(E:\Work\APP_Project\ti-hrm\vendor/infyomlabs/swagger-generator/templates/model_docs/model.stub): Failed to open stream: No such file or directory

get this error when selecting swagger on Generator Builder

Everytime I try to view there is an error

crud.com/api/docs

💥 retruns

ErrorException in Logger.php line 38:
Required @SWG\Info() not found

crud.com/docs

💥 retruns

Cannot find /home/vagrant/grace/local.start/storage/docs/api-docs.json

_Do we need to run a swagger command or something?_

Also the view file that is imported into the views/vendor/ area is formatted incorrectly.

Here is part of

resources/views/vendor/jlapp/swaggervelsrc/views/index.blade.php

    <link rel="icon" type="image/png" href="/vendor/swaggervel/images/favicon-32x32.png" sizes="32x32" />
        <link rel="icon" type="image/png" href="/vendor/swaggervel/images/favicon-16x16.png" sizes="16x16" />
        <link href='/vendor/swaggervel/css/typography.css' media='screen' rel='stylesheet' type='text/css'/>
        <link href='/vendor/swaggervel/css/reset.css' media='screen' rel='stylesheet' type='text/css'/>
        <link href='/vendor/swaggervel/css/screen.css' media='screen' rel='stylesheet' type='text/css'/>
        <link href='/vendor/swaggervel/css/reset.css' media='print' rel='stylesheet' type='text/css'/>
        <link href='/vendor/swaggervel/css/print.css' media='print' rel='stylesheet' type='text/css'/>
        <script src='/vendor/swaggervel/lib/jquery-1.8.0.min.js' type='text/javascript'></script>
        <script src='/vendor/swaggervel/lib/jquery.slideto.min.js' type='text/javascript'></script>
        <script src='/vendor/swaggervel/lib/jquery.wiggle.min.js' type='text/javascript'></script>
        <script src='/vendor/swaggervel/lib/jquery.ba-bbq.min.js' type='text/javascript'></script>
        <script src='/vendor/swaggervel/lib/handlebars-2.0.0.js' type='text/javascript'></script>
        <script src='/vendor/swaggervel/lib/underscore-min.js' type='text/javascript'></script>
        <script src='/vendor/swaggervel/lib/backbone-min.js' type='text/javascript'></script>
        <script src='/vendor/swaggervel/swagger-ui.js' type='text/javascript'></script>
        <script src='/vendor/swaggervel/lib/highlight.7.3.pack.js' type='text/javascript'></script>
        <script src='/vendor/swaggervel/lib/marked.js' type='text/javascript'></script>

        <script src='/vendor/swaggervel/lib/swagger-oauth.js' type='text/javascript'></script>

        <!-- Some basic translations -->
        <!-- <script src='lang/translator.js' type='text/javascript'></script> -->
        <!-- <script src='lang/ru.js' type='text/javascript'></script> -->
        <!-- <script src='lang/en.js' type='text/javascript'></script> -->

Change into something like

 <link rel="icon" type="image/png" href="{!! url('/vendor/swaggervel/images/favicon-32x32.png') !!}" sizes="32x32" />
        <link rel="icon" type="image/png" href="{!! url('/vendor/swaggervel/images/favicon-16x16.png') !!}" sizes="16x16" />
        <link href='{!! asset('/vendor/swaggervel/css/typography.css') !!}' media='screen' rel='stylesheet' type='text/css'/>
        <link href='{!! asset('/vendor/swaggervel/css/reset.css') !!}' media='screen' rel='stylesheet' type='text/css'/>
        <link href='{!! asset('/vendor/swaggervel/css/screen.css') !!}' media='screen' rel='stylesheet' type='text/css'/>
        <link href='{!! asset('/vendor/swaggervel/css/reset.css') !!}' media='print' rel='stylesheet' type='text/css'/>
        <link href='{!! asset('/vendor/swaggervel/css/print.css') !!}' media='print' rel='stylesheet' type='text/css'/>
        <script src='{!! asset('/vendor/swaggervel/lib/jquery-1.8.0.min.js') !!}' type='text/javascript'></script>
        <script src='{!! asset('/vendor/swaggervel/lib/jquery.slideto.min.js') !!}' type='text/javascript'></script>
        <script src='{!! asset('/vendor/swaggervel/lib/jquery.wiggle.min.js') !!}' type='text/javascript'></script>
        <script src='{!! asset('/vendor/swaggervel/lib/jquery.ba-bbq.min.js') !!}' type='text/javascript'></script>
        <script src='{!! asset('/vendor/swaggervel/lib/handlebars-2.0.0.js') !!}' type='text/javascript'></script>
        <script src='{!! asset('/vendor/swaggervel/lib/underscore-min.js') !!}' type='text/javascript'></script>
        <script src='{!! asset('/vendor/swaggervel/lib/backbone-min.js') !!}' type='text/javascript'></script>
        <script src='{!! asset('/vendor/swaggervel/swagger-ui.js') !!}' type='text/javascript'></script>
        <script src='{!! asset('/vendor/swaggervel/lib/highlight.7.3.pack.js') !!}' type='text/javascript'></script>
        <script src='{!! asset('/vendor/swaggervel/lib/marked.js') !!}' type='text/javascript'></script>

        <script src='{!! asset('//vendor/swaggervel/lib/swagger-oauth.js') !!}' type='text/javascript'></script>

        <!-- Some basic translations -->
        <!-- <script src='{!! asset('/vendor/swaggervel/lang/translator.js') !!}' type='text/javascript'></script> -->
        <!-- <script src='{!! asset('/vendor/swaggervel/lang/ru.js') !!}' type='text/javascript'></script> -->
        <!-- <script src='{!! asset('/vendor/swaggervel/lang/en.js') !!}' type='text/javascript'></script> -->

Way to customize swagger route path

Hello.
Is there a way to customize templates using MODEL_NAME_PLURAL_SNAKE instead of MODEL_NAME_PLURAL_CAMEL? (like I did in https://github.com/webdevog/swagger-generator)
I can't find a way to configure it.
My issue is that infyomlabs/laravel-generator generates by default routes in snake_case style and infyomlabs/swagger-generator makes swagger annotations using camelCase and as result I have wrond routes in documentation until I start using my fork master...webdevog:master
Any suggestions?
Thank you

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.