{"id":15286024,"url":"https://github.com/faabiosr/openapi-assert","last_synced_at":"2025-10-07T01:30:31.762Z","repository":{"id":49437199,"uuid":"153542961","full_name":"faabiosr/openapi-assert","owner":"faabiosr","description":"Asserting data against OpenAPI docs.","archived":true,"fork":false,"pushed_at":"2023-02-22T19:19:58.000Z","size":132,"stargazers_count":17,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-01T15:10:09.430Z","etag":null,"topics":["assert","golang","openapi","swagger"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/faabiosr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":null,"codemeta":null}},"created_at":"2018-10-18T00:58:25.000Z","updated_at":"2023-11-01T18:38:59.000Z","dependencies_parsed_at":"2024-06-19T05:35:59.962Z","dependency_job_id":null,"html_url":"https://github.com/faabiosr/openapi-assert","commit_stats":null,"previous_names":["fabiorphp/openapi-assert"],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faabiosr%2Fopenapi-assert","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faabiosr%2Fopenapi-assert/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faabiosr%2Fopenapi-assert/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faabiosr%2Fopenapi-assert/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/faabiosr","download_url":"https://codeload.github.com/faabiosr/openapi-assert/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235569499,"owners_count":19011184,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["assert","golang","openapi","swagger"],"created_at":"2024-09-30T15:10:12.067Z","updated_at":"2025-10-07T01:30:26.396Z","avatar_url":"https://github.com/faabiosr.png","language":"Go","readme":"# OpenAPI - Assert\n\n[![Build Status](https://img.shields.io/github/workflow/status/faabiosr/openapi-assert/test?style=flat-square\u0026logo=github)](https://github.com/faabiosr/openapi-assert/actions?query=workflow:test)\n[![Codecov branch](https://img.shields.io/codecov/c/github/faabiosr/openapi-assert/master.svg?style=flat-square)](https://codecov.io/gh/faabiosr/openapi-assert)\n[![Go Reference](https://pkg.go.dev/badge/github.com/faabiosr/openapi-assert.svg)](https://pkg.go.dev/github.com/faabiosr/openapi-assert)\n[![Go Report Card](https://goreportcard.com/badge/github.com/faabiosr/openapi-assert?style=flat-square)](https://goreportcard.com/report/github.com/faabiosr/openapi-assert)\n[![License](https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square)](https://github.com/faabiosr/openapi-assert/blob/master/LICENSE)\n\n\n## Description\n\nopenapi-assert is a Go package that provides a affordable way to validate http requests and responses data throught OpenAPI Schema Specification (Swagger) and the project was inspired by [PHP Swagger Assertions](https://github.com/Maks3w/SwaggerAssertions). It has the following features:\n\n* Assert request and response media types\n* Assert request and response headers\n* Assert request query strings\n* Assert request and response body.\n* Assert the entire http request and response object.\n\n## Requirements\nOpenAPI Assert requires Go 1.11 or later.\n\n## Instalation\n\nUse go get.\n```sh\n$ go get github.com/faabiosr/openapi-assert\n```\n\nThen import the package into your own code:\n```\nimport \"github.com/faabiosr/openapi-assert\"\n```\n\n## Usage\nThe package provides methods that allow you to assert raw data using swagger files.\n\nSee it in action:\n```go\npackage main\n\nimport (\n    \"log\"\n    \"net/http\"\n\n    assert \"github.com/faabiosr/openapi-assert\"\n)\n\nfunc main() {\n    doc, err := assert.LoadFromURI(\"http://petstore.swagger.io/v2/swagger.json\")\n\n    if err != nil {\n        log.Fatal(err)\n    }\n\n    assert := assert.New(doc)\n\n    log.Println(\n        assert.RequestMediaType(\"text/html\", \"/pet\", http.MethodPost),\n    )\n\n    log.Println(\n        assert.RequestMediaType(\"image/gif\", \"/v2/pet\", http.MethodPost),\n    )\n}\n```\n\nAsserting http request object using the swagger schema file:\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"net/http\"\n\n\tassert \"github.com/faabiosr/openapi-assert\"\n)\n\nfunc main() {\n\tdoc, err := assert.LoadFromURI(\"http://petstore.swagger.io/v2/swagger.json\")\n\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\n\tassert := assert.New(doc)\n\n\thttp.HandleFunc(\"/v2/pet\", func(w http.ResponseWriter, r *http.Request) {\n\t\terr := assert.Request(r)\n\n\t\tfmt.Fprint(w, err)\n\t})\n\n\tlog.Fatal(\n\t\thttp.ListenAndServe(\"127.0.0.1:9000\", nil),\n\t)\n}\n```\n\nAsserting http response object using the swagger schema file:\n\n```go\npackage main\n\nimport (\n\t\"log\"\n\t\"net/http\"\n\n\tassert \"github.com/faabiosr/openapi-assert\"\n)\n\nfunc main() {\n\tdoc, err := assert.LoadFromURI(\"http://petstore.swagger.io/v2/swagger.json\")\n\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\n\tassert := assert.New(doc)\n\n\tres, err := http.Get(\"https://petstore.swagger.io/v2/pet/111111422\")\n\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\n\tlog.Println(assert.Response(res))\n}\n```\n\n## Examples\n* Simple example with [Echo Framework](https://github.com/faabiosr/openapi-assert/blob/master/_examples/echo/main.go)\n\n\n## Development\n\n### Requirements\n\n- Install [Go](https://golang.org)\n- Install [GolangCI-Lint](https://github.com/golangci/golangci-lint#install) - Linter\n\n### Makefile\n```sh\n# Clean up\n$ make clean\n\n# Download project dependencies\n$ make configure\n\n# Run tests and generates html coverage file\n$ make cover\n\n# Format all go files\n$ make fmt\n\n# GolangCI-Lint\n$ make lint\n\n# Run tests\n$make test\n```\n\n## License\n\nThis project is released under the MIT licence. See [LICENSE](https://github.com/faabiosr/openapi-assert/blob/master/LICENSE) for more details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffaabiosr%2Fopenapi-assert","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffaabiosr%2Fopenapi-assert","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffaabiosr%2Fopenapi-assert/lists"}