Designing And Developing Robust API Client Applications
A Case Study Of Pagure Exporter
Pagure Exporter, as the name suggests, is a simple tool that helps migrate repository files, data assets and issue tickets from Pagure, a Git forge developed in-house by Fedora Project contributors to support our recent move to a managed GitLab instance for Fedora Project using their respective REST APIs. While the development was deemed to be as straightforward as the purpose of the project - the reality was different owing to the various external factors like network conditions, authentication correctness, rate limits, interrupted transfers etc. that could affect the operational quality.
This talk goes into detail about the various considerations noted when designing and developing an API client application - all while ensuring that the operation remains robust throughout various possible points of failures that are likely to occur while making API calls. This talk also explores the thought process put into the configurability of the client application using only command-line interface compositing libraries, elucidates the best practices used to judiciously utilize the provided API resources and elaborates on the exhaustive efforts put into the quality assurance of such tools.
Who is the target audience?
- Software engineers attempting to learn about the best practices of the software development lifecycle
- Software developers venturing to understand the best ways to build robust REST API client applications
- Service administrators seeking to comprehend possible pain points encountered by the general API users
- Quality engineers trying to recognize methods of testing requests that are efficient, faster and reliable
- Interaction designers striving to grasp means of building minimal but informative command-line interfaces
- Budding community members looking to contribute to the API-related upstream open-source projects
How does the target audience benefit?
- Software engineers would be learning about the best practices employed in developing a similar project
- Software developers would be understanding ways to circumvent operational failures with REST API interactions
- Service administrators would be comprehending probable solutions to ease usage for API users
- Quality engineers would be recognizing libraries and techniques for improving their testing processes
- Interaction designers would be grasping methods to build command-line interfaces that are easy to understand
- Budding community members would be obtaining API-related upstream open-source projects to contribute to
- Akashdeep Dhar
- Michal Konecny
- Pagure Exporter Is Now Available
- fedora-infra/pagure-exporter - GitHub
- pagure-exporter - PyPI
- pagure-exporter - Fedora Packages
- VCR.py - ReadTheDocs
- pre-commit CI for GitHub Actions