{"id":13936089,"url":"https://github.com/ithaka/apiron","last_synced_at":"2025-07-19T21:31:42.964Z","repository":{"id":33076880,"uuid":"151121812","full_name":"ithaka/apiron","owner":"ithaka","description":":fried_egg: apiron is a Python package that helps you cook a tasty client for RESTful APIs. Just don't wash it with SOAP.","archived":false,"fork":false,"pushed_at":"2025-06-04T19:00:11.000Z","size":375,"stargazers_count":121,"open_issues_count":5,"forks_count":16,"subscribers_count":17,"default_branch":"dev","last_synced_at":"2025-06-04T21:37:18.455Z","etag":null,"topics":["api-client","jstor-frontend","microservices","python","python-package","requests","rest-client"],"latest_commit_sha":null,"homepage":"https://apiron.readthedocs.io","language":"Python","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/ithaka.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null}},"created_at":"2018-10-01T16:38:49.000Z","updated_at":"2025-06-04T18:58:35.000Z","dependencies_parsed_at":"2023-02-14T14:45:29.386Z","dependency_job_id":"0f8e6ada-eff0-4049-9929-a92b5ec2d546","html_url":"https://github.com/ithaka/apiron","commit_stats":{"total_commits":181,"total_committers":11,"mean_commits":"16.454545454545453","dds":0.5911602209944751,"last_synced_commit":"04d1155ad77d017b81be71f709aa3e449a57eddb"},"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"purl":"pkg:github/ithaka/apiron","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ithaka%2Fapiron","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ithaka%2Fapiron/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ithaka%2Fapiron/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ithaka%2Fapiron/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ithaka","download_url":"https://codeload.github.com/ithaka/apiron/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ithaka%2Fapiron/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266019657,"owners_count":23864916,"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-client","jstor-frontend","microservices","python","python-package","requests","rest-client"],"created_at":"2024-08-07T23:02:22.455Z","updated_at":"2025-07-19T21:31:37.950Z","avatar_url":"https://github.com/ithaka.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# apiron\n\n[![PyPI version](https://badge.fury.io/py/apiron.svg)](https://pypi.org/project/apiron/#history)\n[![Supported Python versions](https://img.shields.io/pypi/pyversions/apiron.svg)](https://pypi.org/project/apiron/)\n[![Build status](https://github.com/github/docs/actions/workflows/main.yml/badge.svg)](https://github.com/ithaka/apiron/actions)\n[![Documentation Status](https://readthedocs.org/projects/apiron/badge/?version=latest)](https://apiron.readthedocs.io)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v1.4%20adopted-ff69b4.svg)](code-of-conduct.md)\n\n`apiron` helps you cook a tasty client for RESTful APIs. Just don't wash it with SOAP.\n\n\u003cimg src=\"https://github.com/ithaka/apiron/raw/dev/docs/_static/cast-iron-skillet.png\" alt=\"Pie in a cast iron skillet\" width=\"200\"\u003e\n\nGathering data from multiple services has become a ubiquitous task for web application developers.\nThe complexity can grow quickly:\ncalling an API endpoint with multiple parameter sets,\ncalling multiple API endpoints,\ncalling multiple endpoints in multiple APIs.\nWhile the business logic can get hairy,\nthe code to interact with those APIs doesn't have to.\n\n`apiron` provides declarative, structured configuration of services and endpoints\nwith a unified interface for interacting with them.\n\n\n## Defining a service\n\nA service definition requires a domain\nand one or more endpoints with which to interact:\n\n```python\nfrom apiron import JsonEndpoint, Service\n\nclass GitHub(Service):\n    domain = 'https://api.github.com'\n    user = JsonEndpoint(path='/users/{username}')\n    repo = JsonEndpoint(path='/repos/{org}/{repo}')\n```\n\n\n## Interacting with a service\n\nOnce your service definition is in place, you can interact with its endpoints:\n\n```python\nresponse = GitHub.user(username='defunkt')\n# {\"name\": \"Chris Wanstrath\", ...}\n\nresponse = GitHub.repo(org='github', repo='hub')\n# {\"description\": \"hub helps you win at git.\", ...}\n```\n\nTo learn more about building clients, head over to [the docs](https://apiron.readthedocs.io).\n\n\n## Contributing\n\nWe are happy to consider contributions via pull request,\nespecially if they address an existing bug or vulnerability.\nPlease read our [contribution guidelines](./.github/CONTRIBUTING.md) before getting started.\n\n## License\n\nThis package is available under the MIT license.\nFor more information, [view the full license and copyright notice](./LICENSE).\n\nCopyright 2018-2022 Ithaka Harbors, Inc.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fithaka%2Fapiron","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fithaka%2Fapiron","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fithaka%2Fapiron/lists"}