PHPackages                             laravel-openapi/codegen - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. laravel-openapi/codegen

ActiveLibrary[API Development](/categories/api)

laravel-openapi/codegen
=======================

Generate laravel code from openapi specification.

v1.0.0(1y ago)73.7k↓44.6%[3 issues](https://github.com/umarov-safar/laravel-openapi-codegen/issues)MITPHPCI failing

Since Mar 27Pushed 4mo ago1 watchersCompare

[ Source](https://github.com/umarov-safar/laravel-openapi-codegen)[ Packagist](https://packagist.org/packages/laravel-openapi/codegen)[ RSS](/packages/laravel-openapi-codegen/feed)WikiDiscussions main Synced 3d ago

READMEChangelog (5)Dependencies (4)Versions (6)Used By (0)

Laravel OpenAPI Code Generation
===============================

[](#laravel-openapi-code-generation)

Introduction
------------

[](#introduction)

This package provides a convenient way to generate Laravel routes, requests, controllers and etc. based on OpenAPI specifications in YAML format.

### Motivation

[](#motivation)

For example, we have this openapi.yaml

```
openapi: 3.0.0
info:
  title: User API
  version: 1.0.0
paths:
  /users:
    get:
      #...
      x-og-route-name: listUsers
      x-og-controller: App\Http\Controllers\UsersController@index
      x-og-skip-request: true
      x-og-middlewares: auth
      x-og-skip-resource: false
      responses:
        '200':
          description: A list of users.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/User'
    post:
      ...
      x-og-route-name: createUser
      x-og-controller: App\Http\Controllers\UsersController@store
      x-og-skip-request: false
      x-og-skip-resource: false
      x-og-middlewares: auth,admin
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
      responses:
        '201':
          description: User created successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/User'
  /users/{userId}:
    put:
      ...
      x-og-generation: true
      x-og-route-name: updateUser
      x-og-controller: App\Http\Controllers\UsersController@update
      x-og-skip-request: false
      x-og-middlewares: auth,admin
      x-og-skip-resource: false
      parameters:
        - name: userId
          in: path
          required: true
          description: ID of the user to update.
          schema:
            type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
      responses:
        '200':
          description: User updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
components:
  schemas:
    User:
      type: object
      properties:
        id:
          type: integer
          format: int64
        username:
          type: string
          pattern: '^[a-zA-Z0-9_-]{3,16}$'
        email:
          type: string
          format: email
          maxLength: 30
      required:
        - username
        - email
```

by using package after running `php artisan openapi:generate-code` package generates for you below code.

`routes/openapi-codegen.php`

```
