Skip to content

Commit

Permalink
feat: add swagger docs replacing swaggo (#68)
Browse files Browse the repository at this point in the history
  • Loading branch information
igh9410 authored Oct 13, 2024
1 parent b604d17 commit 00aaddc
Show file tree
Hide file tree
Showing 40 changed files with 993 additions and 633 deletions.
3 changes: 1 addition & 2 deletions backend/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,7 @@ curl.txt
jwt.txt
docker_commands.txt
access_token.txt
index.html
index2.html


# Virtual Environment
myenv/
Expand Down
2 changes: 1 addition & 1 deletion backend/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ test:
# Generate Swagger documentation from proto files
generate-docs:
@echo "Generating OpenAPI documentation..."
@protoc --proto_path=${PROTO_PATH} -I=proto/third_party --openapi_out=api --openapi_opt=enum_type=string ${PROTO_PATH}/*.proto
@protoc --proto_path=${PROTO_PATH} -I=proto/third_party --openapi_out=internal/api --openapi_opt=enum_type=string ${PROTO_PATH}/*.proto

# Generate server code from OpenAPI specification
generate-server:
Expand Down
6 changes: 3 additions & 3 deletions backend/cmd/blabber-hive/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ import (
"strconv"
"syscall"

server "github.com/igh9410/blabber-hive/backend/internal/app/application/server"
db "github.com/igh9410/blabber-hive/backend/internal/app/infrastructure/database"
"github.com/igh9410/blabber-hive/backend/internal/app/infrastructure/kafka"
"github.com/igh9410/blabber-hive/backend/internal/app/infrastructure/redis"
"github.com/igh9410/blabber-hive/backend/internal/chat"
"github.com/igh9410/blabber-hive/backend/internal/match"
"github.com/igh9410/blabber-hive/backend/internal/user"
"github.com/igh9410/blabber-hive/backend/router"

"time"

Expand Down Expand Up @@ -123,15 +123,15 @@ func main() {
log.Fatalf("Failed to initialize Kafka consumer: %s", err)
}

routerConfig := &router.RouterConfig{
routerConfig := &server.RouterConfig{
UserHandler: userHandler,
ChatHandler: chatHandler,
ChatWsHandler: chatWsHandler,
MatchHandler: matchHandler,
// Future handlers can be added here without changing the InitRouter signature
}

r := router.InitRouter(routerConfig)
r := server.InitRouter(routerConfig)

srv := &http.Server{
Addr: ":8080",
Expand Down
Binary file added backend/docs/swagger-ui/favicon-16x16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added backend/docs/swagger-ui/favicon-32x32.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
16 changes: 16 additions & 0 deletions backend/docs/swagger-ui/index.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
html {
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}

*,
*:before,
*:after {
box-sizing: inherit;
}

body {
margin: 0;
background: #fafafa;
}
40 changes: 40 additions & 0 deletions backend/docs/swagger-ui/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<!-- HTML for static distribution bundle build -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Swagger UI</title>
<link rel="stylesheet" type="text/css" href="./swagger-ui.css" />
<link rel="stylesheet" type="text/css" href="index.css" />
<link
rel="icon"
type="image/png"
href="./favicon-32x32.png"
sizes="32x32"
/>
<link
rel="icon"
type="image/png"
href="./favicon-16x16.png"
sizes="16x16"
/>
</head>

<body>
<div id="swagger-ui"></div>
<script>
window.onload = function () {
// Make sure the URL points to the correct path for swagger.json or openapi.yaml
const ui = SwaggerUIBundle({
url: "/swagger.json", // Check if this matches your correct swagger.json endpoint
dom_id: "#swagger-ui",
presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset],
layout: "StandaloneLayout",
});
};
</script>
<script src="./swagger-ui-bundle.js" charset="UTF-8"></script>
<script src="./swagger-ui-standalone-preset.js" charset="UTF-8"></script>
<script src="./swagger-initializer.js" charset="UTF-8"></script>
</body>
</html>
79 changes: 79 additions & 0 deletions backend/docs/swagger-ui/oauth2-redirect.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
<!doctype html>
<html lang="en-US">
<head>
<title>Swagger UI: OAuth2 Redirect</title>
</head>
<body>
<script>
'use strict';
function run () {
var oauth2 = window.opener.swaggerUIRedirectOauth2;
var sentState = oauth2.state;
var redirectUrl = oauth2.redirectUrl;
var isValid, qp, arr;

if (/code|token|error/.test(window.location.hash)) {
qp = window.location.hash.substring(1).replace('?', '&');
} else {
qp = location.search.substring(1);
}

arr = qp.split("&");
arr.forEach(function (v,i,_arr) { _arr[i] = '"' + v.replace('=', '":"') + '"';});
qp = qp ? JSON.parse('{' + arr.join() + '}',
function (key, value) {
return key === "" ? value : decodeURIComponent(value);
}
) : {};

isValid = qp.state === sentState;

if ((
oauth2.auth.schema.get("flow") === "accessCode" ||
oauth2.auth.schema.get("flow") === "authorizationCode" ||
oauth2.auth.schema.get("flow") === "authorization_code"
) && !oauth2.auth.code) {
if (!isValid) {
oauth2.errCb({
authId: oauth2.auth.name,
source: "auth",
level: "warning",
message: "Authorization may be unsafe, passed state was changed in server. The passed state wasn't returned from auth server."
});
}

if (qp.code) {
delete oauth2.state;
oauth2.auth.code = qp.code;
oauth2.callback({auth: oauth2.auth, redirectUrl: redirectUrl});
} else {
let oauthErrorMsg;
if (qp.error) {
oauthErrorMsg = "["+qp.error+"]: " +
(qp.error_description ? qp.error_description+ ". " : "no accessCode received from the server. ") +
(qp.error_uri ? "More info: "+qp.error_uri : "");
}

oauth2.errCb({
authId: oauth2.auth.name,
source: "auth",
level: "error",
message: oauthErrorMsg || "[Authorization failed]: no accessCode received from the server."
});
}
} else {
oauth2.callback({auth: oauth2.auth, token: qp, isValid: isValid, redirectUrl: redirectUrl});
}
window.close();
}

if (document.readyState !== 'loading') {
run();
} else {
document.addEventListener('DOMContentLoaded', function () {
run();
});
}
</script>
</body>
</html>
17 changes: 17 additions & 0 deletions backend/docs/swagger-ui/swagger-initializer.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
window.onload = function () {
//<editor-fold desc="Changeable Configuration Block">

// the following lines will be replaced by docker/configurator, when it runs in a docker-container
window.ui = SwaggerUIBundle({
url: "/swagger.json",
dom_id: "#swagger-ui",
deepLinking: true,
presets: [SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset],
plugins: [SwaggerUIBundle.plugins.DownloadUrl],
layout: "StandaloneLayout",
withCredentials: true,
credentials: "include",
});

//</editor-fold>
};
2 changes: 2 additions & 0 deletions backend/docs/swagger-ui/swagger-ui-bundle.js

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions backend/docs/swagger-ui/swagger-ui-bundle.js.map

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions backend/docs/swagger-ui/swagger-ui-es-bundle-core.js

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions backend/docs/swagger-ui/swagger-ui-es-bundle-core.js.map

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions backend/docs/swagger-ui/swagger-ui-es-bundle.js

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions backend/docs/swagger-ui/swagger-ui-es-bundle.js.map

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions backend/docs/swagger-ui/swagger-ui-standalone-preset.js

Large diffs are not rendered by default.

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions backend/docs/swagger-ui/swagger-ui.css

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions backend/docs/swagger-ui/swagger-ui.css.map

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions backend/docs/swagger-ui/swagger-ui.js

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions backend/docs/swagger-ui/swagger-ui.js.map

Large diffs are not rendered by default.

107 changes: 0 additions & 107 deletions backend/infra/kafka/batch.go

This file was deleted.

Loading

0 comments on commit 00aaddc

Please sign in to comment.