Repository files navigation

YapiCheck

en | zh-CN

YAPI is an excellent tool for managing API documentation, but maintaining consistency between the API documentation and code can be challenging. Instead of relying on manual recognition, let this tool automate the process for you.

This is a tool for checking the consistency and conformity between YAPI API documentation and code, ensuring strong consistency and adherence to standards.

Key Features

1. Request Parameter Check

  • Scans the source code of actions, captures the lucky_param parameters of actions, and matches them with the input metadata of YAPI documentation.
    • Supports mandatory and optional validation
    • JSON parameters support type validation, including String, Float, and Integer types
    • Parameter checks require each field to be on a separate line, like:
      required(:name,:String)# Namerequired(:phone,:Integer)# Phone numberrequired(:height,:Float)# Heightoptional(:email,:Email)# Emailoptional(:tags,:ArrayJSON)# Tags

2. Response Parameter Check

  • Matches Jbuilder source code with the output metadata of YAPI documentation.
    • Supports sub-views
    • Supports paths relative to the root directory or the current file directory
    • Action names must match the Jbuilder file names
    • Output requires each returned field to be on a separate line
    • Output requires mandatory type conversion:
      • Strings: Recognized using to_s, json.attr_name ... to_s
      • Integers: Recognized using to_i, json.attr_name ... to_i
      • Floats: Recognized using to_f, json.attr_name ... to_f
      • Arrays: Recognized using to_a or do, json.attr_name ... each do
      • Hashes: Recognized using to_h or do, json.attr_name each do
    json.userdojson.nameuser.name.to_sjson.phoneuser.phone.to_ijson.heightuser.height.to_fjson.emailuser.email.to_sjson.tagsuser.tags.to_aend
    • Does not support boolean types; use integers instead
    • Attributes must be included in the data object, such as: {"code":200, "data":{}}

3. Batch Check

  • Supports checking all interfaces of a single project
  • Supports checking a single interface
  • Supports checking interfaces under a single tag

Usage Instructions

  1. Add the following line to your Rails project's Gemfile:
gem'yapi_check'
  1. Run bundle install:
$ bundle install
  1. Insert the following code into your project's Rakefile:
require'yapi_check/tasks'ENV['YAPI_PROJECT_TOKEN']='THE_TOKEN_FROM_YOUR_YAPI_PROJECT'# YAPI project unique identifier (required), recommended to configure in the project. You can find this token in the YAPI project settings.ENV['YAPI_PROJECT_DOMAIN']='http://YOUR_YAPI_WEBSITE'# YAPI project domain, recommended to configure on your local machine to avoid changes in ~/.bashrc or ~/.zshrcENV['YAPI_API_PREFIX']=''# YAPI project API prefix, can be set to '', defaults to /api/v1 if not set
  1. Run YAPI check: Note: If using zsh, install the rake plugin in ~/.zshrc to support special syntax plugins=(... rake)
# Full check
$ bundle exec rake yapi:check
# or
$ rails yapi:check
# Check a single interface
$ bundle exec rake yapi:check[/healthy_lives/exit_healthy_life]
# or
$ noglob rails yapi:check[/healthy_lives/exit_healthy_life]
# or
$ rails 'yapi:check[/healthy_lives/exit_healthy_life]'# Check a single tag
$ bundle exec rake yapi:check[,3.3.0]
# or
$ noglob rails yapi:check[,3.3.0]
# or
$ rails 'yapi:check[,3.3.0]'

Notes

This tool is only for Rails projects. Request parameter checks heavily depend on lucky_param, and response parameter checks heavily depend on Jbuilder.

Contributing

  1. Fork it ( https://github.com/shootingfly/yapi_check/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Make your changes
  4. Run ruby test/yapi_check_test.rb to run the tests
  5. Commit your changes (git commit -am 'Add some feature')
  6. Push to the branch (git push origin my-new-feature)
  7. Create a new Pull Request

License

The gem is available as open source under the terms of the MIT License.

About

A gem for checking the consistency and conformity between YAPI API documentation and code

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

YapiCheck

en | zh-CN

YAPI is an excellent tool for managing API documentation, but maintaining consistency between the API documentation and code can be challenging. Instead of relying on manual recognition, let this tool automate the process for you.

This is a tool for checking the consistency and conformity between YAPI API documentation and code, ensuring strong consistency and adherence to standards.

Key Features

1. Request Parameter Check

  • Scans the source code of actions, captures the lucky_param parameters of actions, and matches them with the input metadata of YAPI documentation.
    • Supports mandatory and optional validation
    • JSON parameters support type validation, including String, Float, and Integer types
    • Parameter checks require each field to be on a separate line, like:
      required(:name,:String)# Namerequired(:phone,:Integer)# Phone numberrequired(:height,:Float)# Heightoptional(:email,:Email)# Emailoptional(:tags,:ArrayJSON)# Tags

2. Response Parameter Check

  • Matches Jbuilder source code with the output metadata of YAPI documentation.
    • Supports sub-views
    • Supports paths relative to the root directory or the current file directory
    • Action names must match the Jbuilder file names
    • Output requires each returned field to be on a separate line
    • Output requires mandatory type conversion:
      • Strings: Recognized using to_s, json.attr_name ... to_s
      • Integers: Recognized using to_i, json.attr_name ... to_i
      • Floats: Recognized using to_f, json.attr_name ... to_f
      • Arrays: Recognized using to_a or do, json.attr_name ... each do
      • Hashes: Recognized using to_h or do, json.attr_name each do
    json.userdojson.nameuser.name.to_sjson.phoneuser.phone.to_ijson.heightuser.height.to_fjson.emailuser.email.to_sjson.tagsuser.tags.to_aend
    • Does not support boolean types; use integers instead
    • Attributes must be included in the data object, such as: {"code":200, "data":{}}

3. Batch Check

  • Supports checking all interfaces of a single project
  • Supports checking a single interface
  • Supports checking interfaces under a single tag

Usage Instructions

  1. Add the following line to your Rails project's Gemfile:
gem'yapi_check'
  1. Run bundle install:
$ bundle install
  1. Insert the following code into your project's Rakefile:
require'yapi_check/tasks'ENV['YAPI_PROJECT_TOKEN']='THE_TOKEN_FROM_YOUR_YAPI_PROJECT'# YAPI project unique identifier (required), recommended to configure in the project. You can find this token in the YAPI project settings.ENV['YAPI_PROJECT_DOMAIN']='http://YOUR_YAPI_WEBSITE'# YAPI project domain, recommended to configure on your local machine to avoid changes in ~/.bashrc or ~/.zshrcENV['YAPI_API_PREFIX']=''# YAPI project API prefix, can be set to '', defaults to /api/v1 if not set
  1. Run YAPI check: Note: If using zsh, install the rake plugin in ~/.zshrc to support special syntax plugins=(... rake)
# Full check
$ bundle exec rake yapi:check
# or
$ rails yapi:check
# Check a single interface
$ bundle exec rake yapi:check[/healthy_lives/exit_healthy_life]
# or
$ noglob rails yapi:check[/healthy_lives/exit_healthy_life]
# or
$ rails 'yapi:check[/healthy_lives/exit_healthy_life]'# Check a single tag
$ bundle exec rake yapi:check[,3.3.0]
# or
$ noglob rails yapi:check[,3.3.0]
# or
$ rails 'yapi:check[,3.3.0]'

Notes

This tool is only for Rails projects. Request parameter checks heavily depend on lucky_param, and response parameter checks heavily depend on Jbuilder.

Contributing

  1. Fork it ( https://github.com/shootingfly/yapi_check/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Make your changes
  4. Run ruby test/yapi_check_test.rb to run the tests
  5. Commit your changes (git commit -am 'Add some feature')
  6. Push to the branch (git push origin my-new-feature)
  7. Create a new Pull Request

License

The gem is available as open source under the terms of the MIT License.

About

A gem for checking the consistency and conformity between YAPI API documentation and code

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

YapiCheck

en | zh-CN

YAPI is an excellent tool for managing API documentation, but maintaining consistency between the API documentation and code can be challenging. Instead of relying on manual recognition, let this tool automate the process for you.

This is a tool for checking the consistency and conformity between YAPI API documentation and code, ensuring strong consistency and adherence to standards.

Key Features

1. Request Parameter Check

  • Scans the source code of actions, captures the lucky_param parameters of actions, and matches them with the input metadata of YAPI documentation.
    • Supports mandatory and optional validation
    • JSON parameters support type validation, including String, Float, and Integer types
    • Parameter checks require each field to be on a separate line, like:
      required(:name,:String)# Namerequired(:phone,:Integer)# Phone numberrequired(:height,:Float)# Heightoptional(:email,:Email)# Emailoptional(:tags,:ArrayJSON)# Tags

2. Response Parameter Check

  • Matches Jbuilder source code with the output metadata of YAPI documentation.
    • Supports sub-views
    • Supports paths relative to the root directory or the current file directory
    • Action names must match the Jbuilder file names
    • Output requires each returned field to be on a separate line
    • Output requires mandatory type conversion:
      • Strings: Recognized using to_s, json.attr_name ... to_s
      • Integers: Recognized using to_i, json.attr_name ... to_i
      • Floats: Recognized using to_f, json.attr_name ... to_f
      • Arrays: Recognized using to_a or do, json.attr_name ... each do
      • Hashes: Recognized using to_h or do, json.attr_name each do
    json.userdojson.nameuser.name.to_sjson.phoneuser.phone.to_ijson.heightuser.height.to_fjson.emailuser.email.to_sjson.tagsuser.tags.to_aend
    • Does not support boolean types; use integers instead
    • Attributes must be included in the data object, such as: {"code":200, "data":{}}

3. Batch Check

  • Supports checking all interfaces of a single project
  • Supports checking a single interface
  • Supports checking interfaces under a single tag

Usage Instructions

  1. Add the following line to your Rails project's Gemfile:
gem'yapi_check'
  1. Run bundle install:
$ bundle install
  1. Insert the following code into your project's Rakefile:
require'yapi_check/tasks'ENV['YAPI_PROJECT_TOKEN']='THE_TOKEN_FROM_YOUR_YAPI_PROJECT'# YAPI project unique identifier (required), recommended to configure in the project. You can find this token in the YAPI project settings.ENV['YAPI_PROJECT_DOMAIN']='http://YOUR_YAPI_WEBSITE'# YAPI project domain, recommended to configure on your local machine to avoid changes in ~/.bashrc or ~/.zshrcENV['YAPI_API_PREFIX']=''# YAPI project API prefix, can be set to '', defaults to /api/v1 if not set
  1. Run YAPI check: Note: If using zsh, install the rake plugin in ~/.zshrc to support special syntax plugins=(... rake)
# Full check
$ bundle exec rake yapi:check
# or
$ rails yapi:check
# Check a single interface
$ bundle exec rake yapi:check[/healthy_lives/exit_healthy_life]
# or
$ noglob rails yapi:check[/healthy_lives/exit_healthy_life]
# or
$ rails 'yapi:check[/healthy_lives/exit_healthy_life]'# Check a single tag
$ bundle exec rake yapi:check[,3.3.0]
# or
$ noglob rails yapi:check[,3.3.0]
# or
$ rails 'yapi:check[,3.3.0]'

Notes

This tool is only for Rails projects. Request parameter checks heavily depend on lucky_param, and response parameter checks heavily depend on Jbuilder.

Contributing

  1. Fork it ( https://github.com/shootingfly/yapi_check/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Make your changes
  4. Run ruby test/yapi_check_test.rb to run the tests
  5. Commit your changes (git commit -am 'Add some feature')
  6. Push to the branch (git push origin my-new-feature)
  7. Create a new Pull Request

License

The gem is available as open source under the terms of the MIT License.

About

A gem for checking the consistency and conformity between YAPI API documentation and code

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

YapiCheck

en | zh-CN

YAPI is an excellent tool for managing API documentation, but maintaining consistency between the API documentation and code can be challenging. Instead of relying on manual recognition, let this tool automate the process for you.

This is a tool for checking the consistency and conformity between YAPI API documentation and code, ensuring strong consistency and adherence to standards.

Key Features

1. Request Parameter Check

  • Scans the source code of actions, captures the lucky_param parameters of actions, and matches them with the input metadata of YAPI documentation.
    • Supports mandatory and optional validation
    • JSON parameters support type validation, including String, Float, and Integer types
    • Parameter checks require each field to be on a separate line, like:
      required(:name,:String)# Namerequired(:phone,:Integer)# Phone numberrequired(:height,:Float)# Heightoptional(:email,:Email)# Emailoptional(:tags,:ArrayJSON)# Tags

2. Response Parameter Check

  • Matches Jbuilder source code with the output metadata of YAPI documentation.
    • Supports sub-views
    • Supports paths relative to the root directory or the current file directory
    • Action names must match the Jbuilder file names
    • Output requires each returned field to be on a separate line
    • Output requires mandatory type conversion:
      • Strings: Recognized using to_s, json.attr_name ... to_s
      • Integers: Recognized using to_i, json.attr_name ... to_i
      • Floats: Recognized using to_f, json.attr_name ... to_f
      • Arrays: Recognized using to_a or do, json.attr_name ... each do
      • Hashes: Recognized using to_h or do, json.attr_name each do
    json.userdojson.nameuser.name.to_sjson.phoneuser.phone.to_ijson.heightuser.height.to_fjson.emailuser.email.to_sjson.tagsuser.tags.to_aend
    • Does not support boolean types; use integers instead
    • Attributes must be included in the data object, such as: {"code":200, "data":{}}

3. Batch Check

  • Supports checking all interfaces of a single project
  • Supports checking a single interface
  • Supports checking interfaces under a single tag

Usage Instructions

  1. Add the following line to your Rails project's Gemfile:
gem'yapi_check'
  1. Run bundle install:
$ bundle install
  1. Insert the following code into your project's Rakefile:
require'yapi_check/tasks'ENV['YAPI_PROJECT_TOKEN']='THE_TOKEN_FROM_YOUR_YAPI_PROJECT'# YAPI project unique identifier (required), recommended to configure in the project. You can find this token in the YAPI project settings.ENV['YAPI_PROJECT_DOMAIN']='http://YOUR_YAPI_WEBSITE'# YAPI project domain, recommended to configure on your local machine to avoid changes in ~/.bashrc or ~/.zshrcENV['YAPI_API_PREFIX']=''# YAPI project API prefix, can be set to '', defaults to /api/v1 if not set
  1. Run YAPI check: Note: If using zsh, install the rake plugin in ~/.zshrc to support special syntax plugins=(... rake)
# Full check
$ bundle exec rake yapi:check
# or
$ rails yapi:check
# Check a single interface
$ bundle exec rake yapi:check[/healthy_lives/exit_healthy_life]
# or
$ noglob rails yapi:check[/healthy_lives/exit_healthy_life]
# or
$ rails 'yapi:check[/healthy_lives/exit_healthy_life]'# Check a single tag
$ bundle exec rake yapi:check[,3.3.0]
# or
$ noglob rails yapi:check[,3.3.0]
# or
$ rails 'yapi:check[,3.3.0]'

Notes

This tool is only for Rails projects. Request parameter checks heavily depend on lucky_param, and response parameter checks heavily depend on Jbuilder.

Contributing

  1. Fork it ( https://github.com/shootingfly/yapi_check/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Make your changes
  4. Run ruby test/yapi_check_test.rb to run the tests
  5. Commit your changes (git commit -am 'Add some feature')
  6. Push to the branch (git push origin my-new-feature)
  7. Create a new Pull Request

License

The gem is available as open source under the terms of the MIT License.

About

A gem for checking the consistency and conformity between YAPI API documentation and code

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

YapiCheck

en | zh-CN

YAPI is an excellent tool for managing API documentation, but maintaining consistency between the API documentation and code can be challenging. Instead of relying on manual recognition, let this tool automate the process for you.

This is a tool for checking the consistency and conformity between YAPI API documentation and code, ensuring strong consistency and adherence to standards.

Key Features

1. Request Parameter Check

  • Scans the source code of actions, captures the lucky_param parameters of actions, and matches them with the input metadata of YAPI documentation.
    • Supports mandatory and optional validation
    • JSON parameters support type validation, including String, Float, and Integer types
    • Parameter checks require each field to be on a separate line, like:
      required(:name,:String)# Namerequired(:phone,:Integer)# Phone numberrequired(:height,:Float)# Heightoptional(:email,:Email)# Emailoptional(:tags,:ArrayJSON)# Tags

2. Response Parameter Check

  • Matches Jbuilder source code with the output metadata of YAPI documentation.
    • Supports sub-views
    • Supports paths relative to the root directory or the current file directory
    • Action names must match the Jbuilder file names
    • Output requires each returned field to be on a separate line
    • Output requires mandatory type conversion:
      • Strings: Recognized using to_s, json.attr_name ... to_s
      • Integers: Recognized using to_i, json.attr_name ... to_i
      • Floats: Recognized using to_f, json.attr_name ... to_f
      • Arrays: Recognized using to_a or do, json.attr_name ... each do
      • Hashes: Recognized using to_h or do, json.attr_name each do
    json.userdojson.nameuser.name.to_sjson.phoneuser.phone.to_ijson.heightuser.height.to_fjson.emailuser.email.to_sjson.tagsuser.tags.to_aend
    • Does not support boolean types; use integers instead
    • Attributes must be included in the data object, such as: {"code":200, "data":{}}

3. Batch Check

  • Supports checking all interfaces of a single project
  • Supports checking a single interface
  • Supports checking interfaces under a single tag

Usage Instructions

  1. Add the following line to your Rails project's Gemfile:
gem'yapi_check'
  1. Run bundle install:
$ bundle install
  1. Insert the following code into your project's Rakefile:
require'yapi_check/tasks'ENV['YAPI_PROJECT_TOKEN']='THE_TOKEN_FROM_YOUR_YAPI_PROJECT'# YAPI project unique identifier (required), recommended to configure in the project. You can find this token in the YAPI project settings.ENV['YAPI_PROJECT_DOMAIN']='http://YOUR_YAPI_WEBSITE'# YAPI project domain, recommended to configure on your local machine to avoid changes in ~/.bashrc or ~/.zshrcENV['YAPI_API_PREFIX']=''# YAPI project API prefix, can be set to '', defaults to /api/v1 if not set
  1. Run YAPI check: Note: If using zsh, install the rake plugin in ~/.zshrc to support special syntax plugins=(... rake)
# Full check
$ bundle exec rake yapi:check
# or
$ rails yapi:check
# Check a single interface
$ bundle exec rake yapi:check[/healthy_lives/exit_healthy_life]
# or
$ noglob rails yapi:check[/healthy_lives/exit_healthy_life]
# or
$ rails 'yapi:check[/healthy_lives/exit_healthy_life]'# Check a single tag
$ bundle exec rake yapi:check[,3.3.0]
# or
$ noglob rails yapi:check[,3.3.0]
# or
$ rails 'yapi:check[,3.3.0]'

Notes

This tool is only for Rails projects. Request parameter checks heavily depend on lucky_param, and response parameter checks heavily depend on Jbuilder.

Contributing

  1. Fork it ( https://github.com/shootingfly/yapi_check/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Make your changes
  4. Run ruby test/yapi_check_test.rb to run the tests
  5. Commit your changes (git commit -am 'Add some feature')
  6. Push to the branch (git push origin my-new-feature)
  7. Create a new Pull Request

License

The gem is available as open source under the terms of the MIT License.

About

A gem for checking the consistency and conformity between YAPI API documentation and code

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

YapiCheck

en | zh-CN

YAPI is an excellent tool for managing API documentation, but maintaining consistency between the API documentation and code can be challenging. Instead of relying on manual recognition, let this tool automate the process for you.

This is a tool for checking the consistency and conformity between YAPI API documentation and code, ensuring strong consistency and adherence to standards.

Key Features

1. Request Parameter Check

  • Scans the source code of actions, captures the lucky_param parameters of actions, and matches them with the input metadata of YAPI documentation.
    • Supports mandatory and optional validation
    • JSON parameters support type validation, including String, Float, and Integer types
    • Parameter checks require each field to be on a separate line, like:
      required(:name,:String)# Namerequired(:phone,:Integer)# Phone numberrequired(:height,:Float)# Heightoptional(:email,:Email)# Emailoptional(:tags,:ArrayJSON)# Tags

2. Response Parameter Check

  • Matches Jbuilder source code with the output metadata of YAPI documentation.
    • Supports sub-views
    • Supports paths relative to the root directory or the current file directory
    • Action names must match the Jbuilder file names
    • Output requires each returned field to be on a separate line
    • Output requires mandatory type conversion:
      • Strings: Recognized using to_s, json.attr_name ... to_s
      • Integers: Recognized using to_i, json.attr_name ... to_i
      • Floats: Recognized using to_f, json.attr_name ... to_f
      • Arrays: Recognized using to_a or do, json.attr_name ... each do
      • Hashes: Recognized using to_h or do, json.attr_name each do
    json.userdojson.nameuser.name.to_sjson.phoneuser.phone.to_ijson.heightuser.height.to_fjson.emailuser.email.to_sjson.tagsuser.tags.to_aend
    • Does not support boolean types; use integers instead
    • Attributes must be included in the data object, such as: {"code":200, "data":{}}

3. Batch Check

  • Supports checking all interfaces of a single project
  • Supports checking a single interface
  • Supports checking interfaces under a single tag

Usage Instructions

  1. Add the following line to your Rails project's Gemfile:
gem'yapi_check'
  1. Run bundle install:
$ bundle install
  1. Insert the following code into your project's Rakefile:
require'yapi_check/tasks'ENV['YAPI_PROJECT_TOKEN']='THE_TOKEN_FROM_YOUR_YAPI_PROJECT'# YAPI project unique identifier (required), recommended to configure in the project. You can find this token in the YAPI project settings.ENV['YAPI_PROJECT_DOMAIN']='http://YOUR_YAPI_WEBSITE'# YAPI project domain, recommended to configure on your local machine to avoid changes in ~/.bashrc or ~/.zshrcENV['YAPI_API_PREFIX']=''# YAPI project API prefix, can be set to '', defaults to /api/v1 if not set
  1. Run YAPI check: Note: If using zsh, install the rake plugin in ~/.zshrc to support special syntax plugins=(... rake)
# Full check
$ bundle exec rake yapi:check
# or
$ rails yapi:check
# Check a single interface
$ bundle exec rake yapi:check[/healthy_lives/exit_healthy_life]
# or
$ noglob rails yapi:check[/healthy_lives/exit_healthy_life]
# or
$ rails 'yapi:check[/healthy_lives/exit_healthy_life]'# Check a single tag
$ bundle exec rake yapi:check[,3.3.0]
# or
$ noglob rails yapi:check[,3.3.0]
# or
$ rails 'yapi:check[,3.3.0]'

Notes

This tool is only for Rails projects. Request parameter checks heavily depend on lucky_param, and response parameter checks heavily depend on Jbuilder.

Contributing

  1. Fork it ( https://github.com/shootingfly/yapi_check/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Make your changes
  4. Run ruby test/yapi_check_test.rb to run the tests
  5. Commit your changes (git commit -am 'Add some feature')
  6. Push to the branch (git push origin my-new-feature)
  7. Create a new Pull Request

License

The gem is available as open source under the terms of the MIT License.

About

A gem for checking the consistency and conformity between YAPI API documentation and code

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

YapiCheck

en | zh-CN

YAPI is an excellent tool for managing API documentation, but maintaining consistency between the API documentation and code can be challenging. Instead of relying on manual recognition, let this tool automate the process for you.

This is a tool for checking the consistency and conformity between YAPI API documentation and code, ensuring strong consistency and adherence to standards.

Key Features

1. Request Parameter Check

  • Scans the source code of actions, captures the lucky_param parameters of actions, and matches them with the input metadata of YAPI documentation.
    • Supports mandatory and optional validation
    • JSON parameters support type validation, including String, Float, and Integer types
    • Parameter checks require each field to be on a separate line, like:
      required(:name,:String)# Namerequired(:phone,:Integer)# Phone numberrequired(:height,:Float)# Heightoptional(:email,:Email)# Emailoptional(:tags,:ArrayJSON)# Tags

2. Response Parameter Check

  • Matches Jbuilder source code with the output metadata of YAPI documentation.
    • Supports sub-views
    • Supports paths relative to the root directory or the current file directory
    • Action names must match the Jbuilder file names
    • Output requires each returned field to be on a separate line
    • Output requires mandatory type conversion:
      • Strings: Recognized using to_s, json.attr_name ... to_s
      • Integers: Recognized using to_i, json.attr_name ... to_i
      • Floats: Recognized using to_f, json.attr_name ... to_f
      • Arrays: Recognized using to_a or do, json.attr_name ... each do
      • Hashes: Recognized using to_h or do, json.attr_name each do
    json.userdojson.nameuser.name.to_sjson.phoneuser.phone.to_ijson.heightuser.height.to_fjson.emailuser.email.to_sjson.tagsuser.tags.to_aend
    • Does not support boolean types; use integers instead
    • Attributes must be included in the data object, such as: {"code":200, "data":{}}

3. Batch Check

  • Supports checking all interfaces of a single project
  • Supports checking a single interface
  • Supports checking interfaces under a single tag

Usage Instructions

  1. Add the following line to your Rails project's Gemfile:
gem'yapi_check'
  1. Run bundle install:
$ bundle install
  1. Insert the following code into your project's Rakefile:
require'yapi_check/tasks'ENV['YAPI_PROJECT_TOKEN']='THE_TOKEN_FROM_YOUR_YAPI_PROJECT'# YAPI project unique identifier (required), recommended to configure in the project. You can find this token in the YAPI project settings.ENV['YAPI_PROJECT_DOMAIN']='http://YOUR_YAPI_WEBSITE'# YAPI project domain, recommended to configure on your local machine to avoid changes in ~/.bashrc or ~/.zshrcENV['YAPI_API_PREFIX']=''# YAPI project API prefix, can be set to '', defaults to /api/v1 if not set
  1. Run YAPI check: Note: If using zsh, install the rake plugin in ~/.zshrc to support special syntax plugins=(... rake)
# Full check
$ bundle exec rake yapi:check
# or
$ rails yapi:check
# Check a single interface
$ bundle exec rake yapi:check[/healthy_lives/exit_healthy_life]
# or
$ noglob rails yapi:check[/healthy_lives/exit_healthy_life]
# or
$ rails 'yapi:check[/healthy_lives/exit_healthy_life]'# Check a single tag
$ bundle exec rake yapi:check[,3.3.0]
# or
$ noglob rails yapi:check[,3.3.0]
# or
$ rails 'yapi:check[,3.3.0]'

Notes

This tool is only for Rails projects. Request parameter checks heavily depend on lucky_param, and response parameter checks heavily depend on Jbuilder.

Contributing

  1. Fork it ( https://github.com/shootingfly/yapi_check/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Make your changes
  4. Run ruby test/yapi_check_test.rb to run the tests
  5. Commit your changes (git commit -am 'Add some feature')
  6. Push to the branch (git push origin my-new-feature)
  7. Create a new Pull Request

License

The gem is available as open source under the terms of the MIT License.

About

A gem for checking the consistency and conformity between YAPI API documentation and code

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

YapiCheck

en | zh-CN

YAPI is an excellent tool for managing API documentation, but maintaining consistency between the API documentation and code can be challenging. Instead of relying on manual recognition, let this tool automate the process for you.

This is a tool for checking the consistency and conformity between YAPI API documentation and code, ensuring strong consistency and adherence to standards.

Key Features

1. Request Parameter Check

  • Scans the source code of actions, captures the lucky_param parameters of actions, and matches them with the input metadata of YAPI documentation.
    • Supports mandatory and optional validation
    • JSON parameters support type validation, including String, Float, and Integer types
    • Parameter checks require each field to be on a separate line, like:
      required(:name,:String)# Namerequired(:phone,:Integer)# Phone numberrequired(:height,:Float)# Heightoptional(:email,:Email)# Emailoptional(:tags,:ArrayJSON)# Tags

2. Response Parameter Check

  • Matches Jbuilder source code with the output metadata of YAPI documentation.
    • Supports sub-views
    • Supports paths relative to the root directory or the current file directory
    • Action names must match the Jbuilder file names
    • Output requires each returned field to be on a separate line
    • Output requires mandatory type conversion:
      • Strings: Recognized using to_s, json.attr_name ... to_s
      • Integers: Recognized using to_i, json.attr_name ... to_i
      • Floats: Recognized using to_f, json.attr_name ... to_f
      • Arrays: Recognized using to_a or do, json.attr_name ... each do
      • Hashes: Recognized using to_h or do, json.attr_name each do
    json.userdojson.nameuser.name.to_sjson.phoneuser.phone.to_ijson.heightuser.height.to_fjson.emailuser.email.to_sjson.tagsuser.tags.to_aend
    • Does not support boolean types; use integers instead
    • Attributes must be included in the data object, such as: {"code":200, "data":{}}

3. Batch Check

  • Supports checking all interfaces of a single project
  • Supports checking a single interface
  • Supports checking interfaces under a single tag

Usage Instructions

  1. Add the following line to your Rails project's Gemfile:
gem'yapi_check'
  1. Run bundle install:
$ bundle install
  1. Insert the following code into your project's Rakefile:
require'yapi_check/tasks'ENV['YAPI_PROJECT_TOKEN']='THE_TOKEN_FROM_YOUR_YAPI_PROJECT'# YAPI project unique identifier (required), recommended to configure in the project. You can find this token in the YAPI project settings.ENV['YAPI_PROJECT_DOMAIN']='http://YOUR_YAPI_WEBSITE'# YAPI project domain, recommended to configure on your local machine to avoid changes in ~/.bashrc or ~/.zshrcENV['YAPI_API_PREFIX']=''# YAPI project API prefix, can be set to '', defaults to /api/v1 if not set
  1. Run YAPI check: Note: If using zsh, install the rake plugin in ~/.zshrc to support special syntax plugins=(... rake)
# Full check
$ bundle exec rake yapi:check
# or
$ rails yapi:check
# Check a single interface
$ bundle exec rake yapi:check[/healthy_lives/exit_healthy_life]
# or
$ noglob rails yapi:check[/healthy_lives/exit_healthy_life]
# or
$ rails 'yapi:check[/healthy_lives/exit_healthy_life]'# Check a single tag
$ bundle exec rake yapi:check[,3.3.0]
# or
$ noglob rails yapi:check[,3.3.0]
# or
$ rails 'yapi:check[,3.3.0]'

Notes

This tool is only for Rails projects. Request parameter checks heavily depend on lucky_param, and response parameter checks heavily depend on Jbuilder.

Contributing

  1. Fork it ( https://github.com/shootingfly/yapi_check/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Make your changes
  4. Run ruby test/yapi_check_test.rb to run the tests
  5. Commit your changes (git commit -am 'Add some feature')
  6. Push to the branch (git push origin my-new-feature)
  7. Create a new Pull Request

License

The gem is available as open source under the terms of the MIT License.

About

A gem for checking the consistency and conformity between YAPI API documentation and code

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages