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

chore: refactor api docs #628

Merged
merged 47 commits into from
Feb 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
1b7f79a
chore: refactor api docs
darrenvechain Dec 19, 2023
18cf374
chore: remove a test change
darrenvechain Dec 19, 2023
cd7847e
chore: remove a test change
darrenvechain Dec 19, 2023
517acb8
chore: update docs to show nullable/optional fields
darrenvechain Dec 19, 2023
a185c71
chore: minor updates for naming
darrenvechain Dec 19, 2023
8b921b4
chore: revert tag change
darrenvechain Dec 19, 2023
ba1e87f
remove code cove and fix thor url
darrenvechain Dec 20, 2023
97559cd
remove .DS_store
darrenvechain Dec 20, 2023
3e2b58d
remove .DS_store
darrenvechain Dec 20, 2023
b3123be
remove test.cov
darrenvechain Dec 20, 2023
aebb01a
remove .DS_store
darrenvechain Dec 20, 2023
fed482c
updates for PR comments
darrenvechain Dec 26, 2023
125ca26
update API docs image
darrenvechain Dec 26, 2023
4533c46
Merge branch 'master' into api-doc-refactor
libotony Dec 27, 2023
9f079be
updates for PR comments
darrenvechain Dec 29, 2023
e7bffee
updates for PR comments
darrenvechain Dec 29, 2023
d778384
update thor.yaml
darrenvechain Jan 2, 2024
39a5cd4
update thor.yaml
darrenvechain Jan 2, 2024
a0f7ebb
Merge branch 'master' into api-doc-refactor
darrenvechain Jan 22, 2024
6fa28dd
update required and nullable fields
darrenvechain Jan 22, 2024
fa69680
revert .gitignore
darrenvechain Jan 22, 2024
ac2d3b7
remove TODO
darrenvechain Jan 22, 2024
d8f5048
remove 'nullable' descriptions
darrenvechain Jan 22, 2024
426a6ad
fix: update thor.yaml
darrenvechain Jan 25, 2024
523f9ed
chore: update thor.yaml
darrenvechain Jan 25, 2024
63a9b32
fix allOf errors
darrenvechain Jan 25, 2024
68a34b4
chore: update thor.yaml
darrenvechain Jan 29, 2024
9f05c24
fix: thor.yaml typo
darrenvechain Jan 29, 2024
2678e2a
fix: thor.yaml regex
darrenvechain Jan 29, 2024
f787647
chore: update thor.yaml
darrenvechain Jan 30, 2024
bcf4788
fix: update lint error
darrenvechain Jan 30, 2024
508b171
chore: update thor.yaml to include 'best' in query
darrenvechain Jan 31, 2024
c7be01b
Update api/doc/thor.yaml
darrenvechain Feb 2, 2024
f00ddc8
Update api/doc/thor.yaml
darrenvechain Feb 2, 2024
c0ec91f
Update api/doc/thor.yaml
darrenvechain Feb 2, 2024
e52805d
Update api/doc/thor.yaml
darrenvechain Feb 2, 2024
ea90c12
Update api/doc/thor.yaml
darrenvechain Feb 2, 2024
f1c237c
fix: yaml formatting error
darrenvechain Feb 2, 2024
4d45b62
fix: duplicate 'required'
darrenvechain Feb 2, 2024
fd71d68
feat: add swagger and install instructions
darrenvechain Feb 2, 2024
06be140
fix: schema titles
darrenvechain Feb 2, 2024
7a6fc50
chore: update block response name
darrenvechain Feb 4, 2024
8bbec79
Update api/doc/swagger-ui/window-observer.js
darrenvechain Feb 6, 2024
b450c56
Update api/doc/api-docs/window-observer.js
darrenvechain Feb 6, 2024
d00d869
chore: update PR for comments
darrenvechain Feb 6, 2024
e4c93d9
chore: update readme
darrenvechain Feb 6, 2024
36494aa
fix: remove javascript type
darrenvechain Feb 6, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/close-stale-issues.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ on:
jobs:
stale:
runs-on: ubuntu-latest
# only run this action on `vechain/thor` repository
if: github.repository == 'vechain/thor'

permissions:
contents: write
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/qodana-scan.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ on:

jobs:
scan_qodana:
# only run this action on `vechain/thor` repository
if: github.repository == 'vechain/thor'
runs-on: ubuntu-latest
steps:
- name: Checkout code
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@ volumes:

## API

Once `thor` has started, the online *OpenAPI* doc can be accessed in your browser. e.g. [http://localhost:8669/](http://localhost:8669) by default.
Once `thor` has started, the online *OpenAPI* documentation can be accessed in your browser. e.g. [http://localhost:8669/](http://localhost:8669) by default.

[![Thorest](https://raw.githubusercontent.com/vechain/thor/master/thorest.png)](http://localhost:8669/)

Expand All @@ -201,6 +201,7 @@ A special shout out to following projects:

* [Ethereum](https://github.com/ethereum)
* [Swagger](https://github.com/swagger-api)
* [Stoplight Elements](https://github.com/stoplightio/elements)
darrenvechain marked this conversation as resolved.
Show resolved Hide resolved

## Contributing

Expand Down
6 changes: 3 additions & 3 deletions api/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,15 +52,15 @@ func New(

router := mux.NewRouter()

// to serve api doc and swagger-ui
// to serve api docs
router.PathPrefix("/doc").Handler(
http.StripPrefix("/doc/", http.FileServer(http.FS(doc.FS))),
)

// redirect swagger-ui
// redirect stoplight-ui
router.Path("/").HandlerFunc(
func(w http.ResponseWriter, req *http.Request) {
http.Redirect(w, req, "doc/swagger-ui/", http.StatusTemporaryRedirect)
http.Redirect(w, req, "doc/stoplight-ui/", http.StatusTemporaryRedirect)
})

accounts.New(repo, stater, callGasLimit, forkConfig).
Expand Down
20 changes: 19 additions & 1 deletion api/doc/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,19 @@
swagger-ui from https://github.com/swagger-api/swagger-ui @v3.17.6
## Swagger

swagger-ui from https://github.com/swagger-api/swagger-ui @v5.11.2
- Created [window-observer.js](swagger-ui/window-observer.js) to remove `Try it out` functionality for subscription endpoints

```bash
curl https://unpkg.com/swagger-ui-dist@5.11.2/swagger-ui.css > swagger-ui/swagger-ui.css
curl https://unpkg.com/swagger-ui-dist@5.11.2/swagger-ui-bundle.js > swagger-ui/swagger-ui-bundle.js
curl https://unpkg.com/swagger-ui-dist@5.11.2/swagger-ui-standalone-preset.js > swagger-ui/swagger-ui-standalone-preset.js
```

## Stoplight
Spotlight UI from https://github.com/stoplightio/elements @v8.0.3
- Created [window-observer.js](stoplight-ui/window-observer.js) to remove `Send API Request` functionality for subscription endpoints

```bash
curl https://unpkg.com/@stoplight/elements@8.0.3/styles.min.css > stoplight-ui/styles.min.css
curl https://unpkg.com/@stoplight/elements@8.0.3/web-components.min.js > stoplight-ui/web-components.min.js
```
4 changes: 3 additions & 1 deletion api/doc/doc.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@ import (
"gopkg.in/yaml.v2"
)

//go:embed swagger-ui thor.yaml
// FS embeds the Open API specs and documentation.
//
//go:embed thor.yaml stoplight-ui swagger-ui icons
var FS embed.FS
var version string

Expand Down
Binary file added api/doc/icons/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 api/doc/icons/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.
Binary file added api/doc/icons/favicon-96x96.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
24 changes: 24 additions & 0 deletions api/doc/stoplight-ui/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1, shrink-to-fit=no" name="viewport">
<title>Thor API</title>
<!-- Embed elements Elements via Web Component -->
<script src="./web-components.min.js"></script>
<script charset="UTF-8" src="./window-observer.js"> </script>
<link href="./styles.min.css" rel="stylesheet">
<link href="/doc/icons/favicon-32x32.png" rel="icon" sizes="32x32" type="image/png" />
<link href="/doc/icons/favicon-16x16.png" rel="icon" sizes="16x16" type="image/png" />
<link href="/doc/icons/favicon-96x96.png" rel="icon" sizes="96x96" type="image/png" />

</head>
<body>
<elements-api
apiDescriptionUrl="/doc/thor.yaml"
layout="sidebar"
logo="/doc/icons/favicon-96x96.png"
router="hash"
/>
</body>
</html>
1 change: 1 addition & 0 deletions api/doc/stoplight-ui/styles.min.css

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions api/doc/stoplight-ui/web-components.min.js

Large diffs are not rendered by default.

14 changes: 14 additions & 0 deletions api/doc/stoplight-ui/window-observer.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/**
* This script is used to remove the "Send API request" button and the "Response" sections from WebSocket operations.
* @type {MutationObserver}
*/
const mutationObserver = new MutationObserver(() => {
if (window.location.hash?.includes("#/paths/subscriptions")) {
const element = document.querySelector('[data-testid="two-column-right"]');
if (element) {
element.remove();
}
}
})

mutationObserver.observe(document, {attributes: false, childList: true, characterData: false, subtree:true});
Binary file removed api/doc/swagger-ui/favicon-16x16.png
Binary file not shown.
Binary file removed api/doc/swagger-ui/favicon-32x32.png
Binary file not shown.
84 changes: 27 additions & 57 deletions api/doc/swagger-ui/index.html
Original file line number Diff line number Diff line change
@@ -1,60 +1,30 @@
<!-- 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="icon" type="image/png" href="./favicon-32x32.png" sizes="32x32" />
<link rel="icon" type="image/png" href="./favicon-16x16.png" sizes="16x16" />
<style>
html
{
box-sizing: border-box;
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}

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

body
{
margin:0;
background: #fafafa;
}
</style>
</head>

<body>
<div id="swagger-ui"></div>

<script src="./swagger-ui-bundle.js"> </script>
<script src="./swagger-ui-standalone-preset.js"> </script>
<script>
window.onload = function() {

// Build a system
const ui = SwaggerUIBundle({
url: "../thor.yaml",
dom_id: '#swagger-ui',
deepLinking: true,
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
plugins: [
SwaggerUIBundle.plugins.DownloadUrl
],
layout: "StandaloneLayout"
})

window.ui = ui
}
</script>
</body>
<head>
<meta charset="utf-8" />
<title>Thor Swagger</title>
<link href="./swagger-ui.css" rel="stylesheet" />
<link href="/doc/icons/favicon-32x32.png" rel="icon" sizes="32x32" type="image/png" />
<link href="/doc/icons/favicon-16x16.png" rel="icon" sizes="16x16" type="image/png" />
<link href="/doc/icons/favicon-96x96.png" rel="icon" sizes="96x96" type="image/png" />
</head>
<body>
<div id="swagger-ui"></div>
<script charset="UTF-8" src="./window-observer.js"> </script>
<script crossorigin src="./swagger-ui-bundle.js"></script>
<script crossorigin src="./swagger-ui-standalone-preset.js"></script>
<script>
window.onload = () => {
window.ui = SwaggerUIBundle({
url: `${window.location.origin}/doc/thor.yaml`,
dom_id: '#swagger-ui',
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
layout: "StandaloneLayout",
});
};
</script>
</body>
</html>
67 changes: 0 additions & 67 deletions api/doc/swagger-ui/oauth2-redirect.html

This file was deleted.

94 changes: 2 additions & 92 deletions api/doc/swagger-ui/swagger-ui-bundle.js

Large diffs are not rendered by default.

Loading
Loading