# 2.9.Node Swagger mock server

* 1.Swagger-ui
  * 1.Introduction
  * 2.Create a Swagger server by using express
    * 1.Create folder for project

      ```
            express -e swagger-server
            cd swagger-server
            npm install
      ```
    * 2.Modify app.js

      ```
            app.listen(3000);
      ```
    * 3.Download **swagger-ui**, copy all files and folders from dist folder to public folder from project folder

      ```
            git clone https://github.com/swagger-api/swagger-ui.git
            cd swagger-ui
      ```

      * 4.Run node server and open browser, you can see the default data (<http://petstore.swagger.io/v2/swagger.json>)

        ```
           cd ..
           cd swagger-server
           node app.js
        ```
      * 5.Edit JSON file and **Download JSON** (uber.json)from [Swagger editor](http://editor.swagger.io/#!/)

      ![](https://3195929128-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M4M0G8GO2MkGtHfarAf%2F-M4M0IHoyFvfGKjf7P-T%2F-M4M0NmkXz4Vcq6AlfZ8%2F3463a224-2c6b-4335-ac64-8f926fc6006a.jpg?generation=1586302922127755\&alt=media)

      * 6.Copy JSON file to project folder and modify **index.html**

        ```
        window.onload = function() {
         // Build a system
         const ui = SwaggerUIBundle({
            url: "./uber.json",
            dom_id: '#swagger-ui',
            presets: [
                SwaggerUIBundle.presets.apis,
                // yay ES6 modules ↘
                Array.isArray(SwaggerUIStandalonePreset) ? SwaggerUIStandalonePreset : SwaggerUIStandalonePreset.default            ],
            plugins: [
                    SwaggerUIBundle.plugins.DownloadUrl],
                layout: "StandaloneLayout"
            })
            window.ui = ui
        }
        ```
      * 7.Restart Node.js and open localhost:3000, but it can not show response from server when you try to use API on the current panel.

        ```
           node app.js
        ```

        * swagger-ui just can provide ability to show API document, so you have to build and run a mock server .

![](https://3195929128-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M4M0G8GO2MkGtHfarAf%2F-M4M0IHoyFvfGKjf7P-T%2F-M4M0NmnHuib2Fkln8mL%2F%E6%9C%AA%E5%91%BD%E5%90%8D522.jpg?generation=1586302922108505\&alt=media)

* 2.mock server
  * 1.Clone from respostory

    ```
          git clone https://github.com/bigstickcarpet/swagger-express-middleware.git
    ```
  * 2.Install dependencies

    ```
          npm install
          cd swagger-express-middleware
    ```
