Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question: How can I embed swagger UI? #362

Open
dsha256 opened this issue Jan 23, 2023 · 2 comments
Open

Question: How can I embed swagger UI? #362

dsha256 opened this issue Jan 23, 2023 · 2 comments

Comments

@dsha256
Copy link

dsha256 commented Jan 23, 2023

How can I embed swagger UI? For example like so:

url := ginSwagger.URL("http://localhost:8080/swagger/doc.json")
engine.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler, url))
@MrGlp
Copy link

MrGlp commented Feb 8, 2023

I need get all interface doc by httprouter, including, but not limited swagger, Now, is there any other ready-made solution?

@riley-ashton
Copy link

Here's a vanilla solution, no server side dependencies:

Have a folder called swagger and use a static route to serve your swagger.yaml or swagger.json file and add this html file in:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="description" content="SwaggerUI" />
    <title>SwaggerUI</title>
    <link
      rel="stylesheet"
      href="https://unpkg.com/swagger-ui-dist@4.5.0/swagger-ui.css"
    />
  </head>
  <body>
    <div id="swagger-ui"></div>
    <script
      src="https://unpkg.com/swagger-ui-dist@4.5.0/swagger-ui-bundle.js"
      crossorigin
    ></script>
    <script
      src="https://unpkg.com/swagger-ui-dist@4.5.0/swagger-ui-standalone-preset.js"
      crossorigin
    ></script>
    <script>
      window.onload = () => {
        var url = window.location.search.substring(1);

        if (url.length == 0) {
          url = "swagger.yaml";
        }

        window.ui = SwaggerUIBundle({
          url: url,
          dom_id: "#swagger-ui",
          deepLinking: true,
          presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset],
          plugins: [SwaggerUIBundle.plugins.DownloadUrl],

          layout: "StandaloneLayout",
        });
      };
    </script>
  </body>
</html>

Note: if you're using .json change the swagger.yaml to swagger.json.

Then static serve the folder from your httprouter

router.ServeFiles("/swagger/*filepath", http.Dir("swagger"))

This will serve the swagger ui file from localhost:4000/swagger/swagger.html


Aside: For generation from source code I use

Use swag or similar to annotate your route handlers

swag init -g cmd/api/main.go -o ./swagger

outputs swag files to a folder called swagger


If anyone wants an example repo, comment asking for one, and I'll make one when I have time

similark pushed a commit to similarweb/httprouter that referenced this issue May 9, 2023
* fix documentation for creating an HTTPScaledObject

Signed-off-by: Marco Piovesana <piovesana@esteco.com>

* chore: Allow blank issues (julienschmidt#352)

Signed-off-by: Tom Kerkhove <kerkhove.tom@gmail.com>
Signed-off-by: Marco Piovesana <piovesana@esteco.com>

* Bump github.com/magefile/mage from 1.11.0 to 1.12.1 (julienschmidt#360)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Marco Piovesana <piovesana@esteco.com>

* Bump google.golang.org/grpc from 1.42.0 to 1.43.0 (julienschmidt#358)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Marco Piovesana <piovesana@esteco.com>

* converting bug report issue template to a form issue (julienschmidt#363)

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
Signed-off-by: Marco Piovesana <piovesana@esteco.com>

* Allowing cluster-global operation (julienschmidt#269)

* Allowing cluster-global operation

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* passing less unnecessary data in the operator

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* setting namespace

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* updating tests:

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* Updating deployment cache interfaces

To accommodate multi-namespace gets and watches

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* starting on deployment cache informer

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* switching over to informer-based deployment cache

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* fixing test compile errors and merging fake and in-memory deployment caches

Signed-off-by: Aaron <aaron@ecomaz.net>

* fixing tests

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* fixing more compile errs

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* improving logging, and several other small changes

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* go mod tidy

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* Adding config validation

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* improving ns and svc name var names to indicate interceptor

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* running go mod tidy

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* removing unused code

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* passing a function to transform target to in-cluster URL

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* not requiring namespace for operator

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* splitting namespace config for operator into watch and current

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* removing appInfo, passing current namespace everywhere in its place

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* using proper namespace when creating scaled object

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* allowing xkcd chart to set ingress namespace

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* printing namespace in error

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* using proper fully-qualified hostname of external scaler in scaledobject

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* adding note on cluster-global vs. namespaced mode

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* adding note about installing the xkcd chart in cluster-global mode

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* fixing hostname test

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* merging scaler queue counts with routing table hosts. removing merge functionality from interceptors

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* fix assumption in tests that queue has all hosts from routing table

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* adding test for MergeCountsWithRoutingTable

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* sleep for longer to wait for server to start

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* adding handler test for merging hosts

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* adding test to GetMetrics test cases for host not in queue pinger

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
Signed-off-by: Marco Piovesana <piovesana@esteco.com>

* Return custom header when request was returned from a cold start  (julienschmidt#366)

* Add X-KEDA-HTTP-Cold-Start header

- Add X-KEDA-HTTP-Cold-Start header
- Change signature of forwardWaitFunc to include deployment.Status.ReadyReplicas

Signed-off-by: Aaron Wislang <aaron.wislang@microsoft.com>

* Update tests for X-KEDA-HTTP-Cold-Start header

Signed-off-by: Aaron Wislang <aaron.wislang@microsoft.com>

* Update interceptor/main_test.go

Co-authored-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
Signed-off-by: Aaron Wislang <aaron.wislang@microsoft.com>

* add bracket

Signed-off-by: Aaron Wislang <aaron.wislang@microsoft.com>

Co-authored-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
Signed-off-by: Marco Piovesana <piovesana@esteco.com>

* Updating dependencies (julienschmidt#348)

* updating dependencies

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* NullLogger => Discard()

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* removing redundant import

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* updating to use go 1.17.2

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* upgrading vulnerable packages

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* upgrading sftp

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>

* force-upgrading sftp

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
Signed-off-by: Marco Piovesana <piovesana@esteco.com>

* Bump go.uber.org/zap from 1.19.1 to 1.20.0 (julienschmidt#362)

Bumps [go.uber.org/zap](https://github.com/uber-go/zap) from 1.19.1 to 1.20.0.
- [Release notes](https://github.com/uber-go/zap/releases)
- [Changelog](https://github.com/uber-go/zap/blob/master/CHANGELOG.md)
- [Commits](uber-go/zap@v1.19.1...v1.20.0)

---
updated-dependencies:
- dependency-name: go.uber.org/zap
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Marco Piovesana <piovesana@esteco.com>

* Bump github.com/go-logr/zapr from 0.4.0 to 1.2.2 (julienschmidt#357)

Bumps [github.com/go-logr/zapr](https://github.com/go-logr/zapr) from 0.4.0 to 1.2.2.
- [Release notes](https://github.com/go-logr/zapr/releases)
- [Commits](go-logr/zapr@v0.4.0...v1.2.2)

---
updated-dependencies:
- dependency-name: github.com/go-logr/zapr
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Marco Piovesana <piovesana@esteco.com>

* Bump k8s.io/apimachinery from 0.23.1 to 0.23.2 (julienschmidt#376)

Bumps [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) from 0.23.1 to 0.23.2.
- [Release notes](https://github.com/kubernetes/apimachinery/releases)
- [Commits](kubernetes/apimachinery@v0.23.1...v0.23.2)

---
updated-dependencies:
- dependency-name: k8s.io/apimachinery
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Marco Piovesana <piovesana@esteco.com>

* Bump k8s.io/client-go from 0.23.1 to 0.23.2 (julienschmidt#375)

Bumps [k8s.io/client-go](https://github.com/kubernetes/client-go) from 0.23.1 to 0.23.2.
- [Release notes](https://github.com/kubernetes/client-go/releases)
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](kubernetes/client-go@v0.23.1...v0.23.2)

---
updated-dependencies:
- dependency-name: k8s.io/client-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Marco Piovesana <piovesana@esteco.com>

* Compile binaries and docker images with git SHA (julienschmidt#377)

* Compile binaries and docker images with git SHA

Signed-off-by: Aaron Wislang <aaron.wislang@microsoft.com>
Signed-off-by: Ubuntu <azureuser@vm1.dwkkbikwkshepl1jlyp52keone.bx.internal.cloudapp.net>

* Fix test

Signed-off-by: Aaron Wislang <aaron.wislang@microsoft.com>
Signed-off-by: Ubuntu <azureuser@vm1.dwkkbikwkshepl1jlyp52keone.bx.internal.cloudapp.net>

* Apply suggestions from @arschles

Co-authored-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
Signed-off-by: Ubuntu <azureuser@vm1.dwkkbikwkshepl1jlyp52keone.bx.internal.cloudapp.net>

Co-authored-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
Signed-off-by: Marco Piovesana <piovesana@esteco.com>

* Bump github.com/onsi/gomega from 1.17.0 to 1.18.0 (julienschmidt#378)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Marco Piovesana <piovesana@esteco.com>

* Configure WhiteSource Bolt for GitHub (julienschmidt#379)

Co-authored-by: whitesource-bolt-for-github[bot] <42819689+whitesource-bolt-for-github[bot]@users.noreply.github.com>
Co-authored-by: Tom Kerkhove <kerkhove.tom@gmail.com>
Signed-off-by: Marco Piovesana <piovesana@esteco.com>

* adding targetPendingRequests to the xkcd helm chart (julienschmidt#373)

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
Signed-off-by: Marco Piovesana <piovesana@esteco.com>

* fixing targetPendingRequests in the HTTPScaledObject v0.2.0 documentation (julienschmidt#372)

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
Signed-off-by: Marco Piovesana <piovesana@esteco.com>

* Add TestStreamIsActive (#384)

* Return IsActive error vs log and continue

Signed-off-by: Aaron Wislang <aaron.wislang@microsoft.com>

* Add TestStreamIsActive

Signed-off-by: Aaron Wislang <aaron.wislang@microsoft.com>

* Bump github.com/onsi/gomega from 1.17.0 to 1.18.0 (julienschmidt#378)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Aaron Wislang <aaron.wislang@microsoft.com>

* Configure WhiteSource Bolt for GitHub (julienschmidt#379)

Co-authored-by: whitesource-bolt-for-github[bot] <42819689+whitesource-bolt-for-github[bot]@users.noreply.github.com>
Co-authored-by: Tom Kerkhove <kerkhove.tom@gmail.com>
Signed-off-by: Aaron Wislang <aaron.wislang@microsoft.com>

* adding targetPendingRequests to the xkcd helm chart (julienschmidt#373)

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
Signed-off-by: Aaron Wislang <aaron.wislang@microsoft.com>

* fixing targetPendingRequests in the HTTPScaledObject v0.2.0 documentation (julienschmidt#372)

Signed-off-by: Aaron Schlesinger <aaron@ecomaz.net>
Signed-off-by: Aaron Wislang <aaron.wislang@microsoft.com>

* defer grpcServer.Stop()

Co-authored-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
Signed-off-by: Aaron Wislang <aaron.wislang@microsoft.com>

* Don't check error for gprServer

Signed-off-by: Aaron Wislang <aaron.wislang@microsoft.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: whitesource-bolt-for-github[bot] <42819689+whitesource-bolt-for-github[bot]@users.noreply.github.com>
Co-authored-by: Tom Kerkhove <kerkhove.tom@gmail.com>
Co-authored-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
Signed-off-by: Marco Piovesana <piovesana@esteco.com>

* Bump go.uber.org/zap from 1.20.0 to 1.21.0 (#394)

Bumps [go.uber.org/zap](https://github.com/uber-go/zap) from 1.20.0 to 1.21.0.
- [Release notes](https://github.com/uber-go/zap/releases)
- [Changelog](https://github.com/uber-go/zap/blob/master/CHANGELOG.md)
- [Commits](uber-go/zap@v1.20.0...v1.21.0)

---
updated-dependencies:
- dependency-name: go.uber.org/zap
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Marco Piovesana <piovesana@esteco.com>

* Bump google.golang.org/grpc from 1.43.0 to 1.44.0 (#390)

Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.43.0 to 1.44.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.43.0...v1.44.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Marco Piovesana <piovesana@esteco.com>

* Bump github.com/onsi/gomega from 1.18.0 to 1.18.1 (#393)

Bumps [github.com/onsi/gomega](https://github.com/onsi/gomega) from 1.18.0 to 1.18.1.
- [Release notes](https://github.com/onsi/gomega/releases)
- [Changelog](https://github.com/onsi/gomega/blob/master/CHANGELOG.md)
- [Commits](onsi/gomega@v1.18.0...v1.18.1)

---
updated-dependencies:
- dependency-name: github.com/onsi/gomega
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Marco Piovesana <piovesana@esteco.com>

* Bump k8s.io/apimachinery from 0.23.2 to 0.23.3 (#392)

Bumps [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) from 0.23.2 to 0.23.3.
- [Release notes](https://github.com/kubernetes/apimachinery/releases)
- [Commits](kubernetes/apimachinery@v0.23.2...v0.23.3)

---
updated-dependencies:
- dependency-name: k8s.io/apimachinery
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Marco Piovesana <piovesana@esteco.com>

* Bump k8s.io/api from 0.23.2 to 0.23.3 (#389)

Bumps [k8s.io/api](https://github.com/kubernetes/api) from 0.23.2 to 0.23.3.
- [Release notes](https://github.com/kubernetes/api/releases)
- [Commits](kubernetes/api@v0.23.2...v0.23.3)

---
updated-dependencies:
- dependency-name: k8s.io/api
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Marco Piovesana <piovesana@esteco.com>

* Update docs/walkthrough.md

Co-authored-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
Signed-off-by: Marco Piovesana <piovesana@esteco.com>

Co-authored-by: mpiovesana <mpiovesana@flamingo.local>
Co-authored-by: Tom Kerkhove <kerkhove.tom@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
Co-authored-by: Aaron Wislang <asw101@users.noreply.github.com>
Co-authored-by: whitesource-bolt-for-github[bot] <42819689+whitesource-bolt-for-github[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants