{"id":23259944,"url":"https://github.com/italia/api-oas-checker","last_synced_at":"2026-04-08T01:31:47.779Z","repository":{"id":37089301,"uuid":"244353016","full_name":"italia/api-oas-checker","owner":"italia","description":"An OpenAPI 3 checker based on spectral.","archived":false,"fork":false,"pushed_at":"2026-02-16T16:57:53.000Z","size":28244,"stargazers_count":68,"open_issues_count":38,"forks_count":28,"subscribers_count":7,"default_branch":"master","last_synced_at":"2026-02-17T00:16:40.669Z","etag":null,"topics":["api","d3f-staticanalysistool","hacktoberfest","linter","openapi3","openapi3-validation","quality","rest","sast","security"],"latest_commit_sha":null,"homepage":"https://italia.github.io/api-oas-checker/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/italia.png","metadata":{"files":{"readme":"README.en.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":"publiccode.yml","codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-03-02T11:23:30.000Z","updated_at":"2026-02-16T16:55:54.000Z","dependencies_parsed_at":"2025-05-07T16:41:14.177Z","dependency_job_id":"a569aceb-6176-4219-9164-758a8c52b273","html_url":"https://github.com/italia/api-oas-checker","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/italia/api-oas-checker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/italia%2Fapi-oas-checker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/italia%2Fapi-oas-checker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/italia%2Fapi-oas-checker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/italia%2Fapi-oas-checker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/italia","download_url":"https://codeload.github.com/italia/api-oas-checker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/italia%2Fapi-oas-checker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31536445,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","d3f-staticanalysistool","hacktoberfest","linter","openapi3","openapi3-validation","quality","rest","sast","security"],"created_at":"2024-12-19T13:01:14.195Z","updated_at":"2026-04-08T01:31:47.737Z","avatar_url":"https://github.com/italia.png","language":"JavaScript","funding_links":[],"categories":["🚧 Misc"],"sub_categories":[],"readme":"# APIs Checker Compliant to the Italian Interoperability Framework\n\n[![Join the #api channel](https://img.shields.io/badge/Slack-%23api-blue.svg?logo=slack)](https://developersitalia.slack.com/messages/CDKBYTG74)\n[![API on forum.italia.it](https://img.shields.io/badge/Forum-interoperabilit%C3%A0-blue.svg)](https://forum.italia.it/c/piano-triennale/interoperabilita)\n[![README in Italian](https://img.shields.io/badge/Readme-Italiano-darkgreen.svg)](README.md)\n\n💡 This repository contains an in-browser checker that verifies some of the rules for REST APIs as indicated in the Italian Interoperability Framework.\n\n🗂️ The associated projects are indicated in the [API Starter Kit](https://github.com/teamdigitale/api-starter-kit).\n\n👨🏻‍💻 The ready-to-use online application is available [here](https://italia.github.io/api-oas-checker/).\n\n## 📋 Requirements\n\n- Node.js 16+ (see `.nvmrc`)\n- Yarn (recommended) or npm\n- Docker (optional, for running in containers)\n\n## 🔍 Checking APIs\n\nThe simplest way to check an API is to use this checker by entering the API content and selecting a ruleset (default: _Italian Guidelines Full_). By clicking \"Check\", you can examine all errors, warnings, info, and hints detected by Spectral.\n\n📌 **For publishing an API on the PDND Catalogue**, run the OAS Checker with the **_Italian Guidelines Full_** profile and verify that the _yaml_ has **0 errors** and ideally **0 warnings**.\n\nAlternatively, you can check APIs via IDE, CLI, and GitHub Action: please refer to the following [README](https://github.com/italia/api-oas-checker-rules/blob/main/README.md) of the [api-oas-checker-rules](https://github.com/italia/api-oas-checker-rules) repository for all the information.\n\n## 📦 Rules\n\nThe rules used by the checker are managed in a dedicated repository: [api-oas-checker-rules](https://github.com/italia/api-oas-checker-rules).\n\nThe available rulesets can be downloaded from the [repository releases](https://github.com/italia/api-oas-checker-rules/releases/latest):\n- [spectral.yml](https://github.com/italia/api-oas-checker-rules/releases/latest/download/spectral.yml), or _Italian Guidelines Full_, the default ones\n- [spectral-generic.yml](https://github.com/italia/api-oas-checker-rules/releases/latest/download/spectral-generic.yml), or _Best Practices Only_\n- [spectral-security.yml](https://github.com/italia/api-oas-checker-rules/releases/latest/download/spectral-security.yml), or _Extra Security Checks_\n- [spectral-full.yml](https://github.com/italia/api-oas-checker-rules/releases/latest/download/spectral-full.yml), or _Italian Guidelines Full + Extra Security Checks_\n\n## 🚀 Running the Web App Locally\n\nThis web app is based on the React library and uses Webpack to generate the application bundle with Babel support for transpiling JavaScript code.\n\nTo start the application:\n\n```bash\n$ yarn\n$ yarn start\n```\n\nAlternatively:\n\n```bash\n$ docker-compose up --build start\n```\n\nand when the build is finished, connect to http://localhost:3000\n\n## 🧪 Tests\n\nTo run the tests:\n\n```bash\n$ yarn test\n```\n\n## 📚 Documentation and Integrations\n\n- **Interoperability Framework**: [Official guidelines](https://docs.italia.it/italia/piano-triennale-ict/lg-modellointeroperabilita-docs)\n- **Complete rules**: [api-oas-checker-rules repository](https://github.com/italia/api-oas-checker-rules)\n- **GitHub Action**: [CI/CD configuration example](https://github.com/italia/api-oas-checker-rules/blob/main/docs/resources/github-action.yml)\n- **API Starter Kit**: [Related projects](https://github.com/teamdigitale/api-starter-kit)\n\n## ✍🏻 Contributions\n\nThanks to Paolo Falomo,\nFrancesco Marinucci,\nGiuseppe De Marco,\nAndrea Misuraca,\nSimone Esposito,\nRocco Affinito\nand Vincenzo Chianese for their suggestions and contributions!\n\n⚙️ The checker is based on [Spectral](https://github.com/stoplightio/spectral).\n\n\u003e ### Why Spectral? 🤔\n\u003e We preferred it over other software because\nit doesn't require the use of databases or server components to which you would send your OpenAPI documents (OAS Checker is a static page deployed on GitHub Pages) and because most rules are described through static files (e.g. YAML):\nexcept in specific cases (e.g. security rulesets), it's not necessary to execute JavaScript code. Furthermore, users can always limit themselves to importing only the static rules.\n\u003e\n\u003e The alternatives we evaluated, equally valid, are:\n\u003e - [Zally](https://github.com/zalando/zally) needs a database and cannot be webpackaged;\n\u003e - [Speccy](https://github.com/wework/speccy) seems to support only JavaScript rules, while this checker mostly uses static YAML files.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitalia%2Fapi-oas-checker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitalia%2Fapi-oas-checker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitalia%2Fapi-oas-checker/lists"}