{"id":17965016,"url":"https://github.com/tgrk/apidiff","last_synced_at":"2025-07-30T11:09:26.754Z","repository":{"id":57612789,"uuid":"159726930","full_name":"tgrk/apidiff","owner":"tgrk","description":"CLI tool for comparing REST/HTTP JSON APIs","archived":false,"fork":false,"pushed_at":"2019-02-27T10:49:12.000Z","size":3205,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-09T07:42:16.932Z","etag":null,"topics":["api","api-rest","api-service","test-automation","testing-tools"],"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/tgrk.png","metadata":{"files":{"readme":"README.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}},"created_at":"2018-11-29T21:02:10.000Z","updated_at":"2023-05-29T06:23:30.000Z","dependencies_parsed_at":"2022-09-05T15:41:28.811Z","dependency_job_id":null,"html_url":"https://github.com/tgrk/apidiff","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tgrk%2Fapidiff","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tgrk%2Fapidiff/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tgrk%2Fapidiff/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tgrk%2Fapidiff/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tgrk","download_url":"https://codeload.github.com/tgrk/apidiff/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247069399,"owners_count":20878561,"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":["api","api-rest","api-service","test-automation","testing-tools"],"created_at":"2024-10-29T12:09:49.732Z","updated_at":"2025-04-03T19:40:40.683Z","avatar_url":"https://github.com/tgrk.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n[![CircleCI](https://circleci.com/gh/tgrk/apidiff/tree/master.svg?style=svg)](https://circleci.com/gh/tgrk/apidiff/tree/master)\n[![codecov.io](https://codecov.io/github/tgrk/apidiff/coverage.svg?branch=master)](https://codecov.io/github/tgrk/apidiff?branch=master)\n\n\n# API Diff\n\nRecords HTTP API (JSON based) calls and compares the them on both HTTP and JSON level. This is helpful when migrating or refactoring APIs to make sure your API contract did not change. It also stores basic performance metrics.\n\n## Installation\n\nAs binary:\n```bash\n$ go get github.com/tgrk/apidiff\n$ go install github.com/tgrk/apidiff/cmd/apidiff\n```\n\nAs dependency:\n```bash\n$ go get gopkg.in/tgrk/apidiff.v1\n\n```\n\n## Usage\n\n[![asciicast](https://asciinema.org/a/219377.svg)](https://asciinema.org/a/219377)\n\n```bash\n$ apidiff -h\nUsage: apidiff [OPTIONS] argument ...\n\n  -compare\n    \tcompare recorded sessions against a URL\n  -del\n    \tlist all recorded API sessions\n  -detail\n    \tview detail fo recorded API session\n  -dir string\n    \tpath where API calls are stored (default $HOME/.apidiff/)\n  -list\n    \tlist all recorded API sessions\n  -name string\n    \tname of session to be recorded\n  -record\n    \trecord a new API session\n  -show\n    \tlist all recorded API sessions\n  -v\tprints current program version\n  -verbose\n    \toutput basic progress\n\n```\n\n### Record a new session\n\nReads [manifest file](examples/simple.yaml) from both CLI arguments and STDIN:\n\n```bash\nappidiff -record -name \"foo\" examples/simple.yaml\n```\n\n```bash\n$ cat examples/simple.yaml | ./appidiff -record -name \"foo\"\n```\n\n### List all existing sessions\n```bash\nappidiff -list\n```\n\n### Show an existing session\n```bash\nappidiff -show \"foo\"\n```\n\n### Detail of first session interaction\n```bash\nappidiff -detail \"foo\" 1\n```\n\n### Delete an existing session\n```bash\nappidiff -del \"foo\"\n```\n\n### Compare against an existing sessions\n\nCompare existing session against a manifest with other API:\n```bash\nappidiff -compare -name \"bar\" examples/simple.yaml\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftgrk%2Fapidiff","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftgrk%2Fapidiff","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftgrk%2Fapidiff/lists"}