Is an Automated Tool for Finding API Breaking Changes in Client Code a Good Project?

0
2
Asked By MistyHarbor47 On

I'm a college student choosing a major project and would like feedback from experienced developers. The idea is to build a tool that accepts an old API specification, a new API specification, and a client application repository. It would detect changes such as removed endpoints, renamed parameters, modified response fields, or altered data types, then identify the files and functions that may be affected.

The proposed implementation would use Python, OpenAPI specifications, AST-based static analysis, dependency graphs, and possibly public code repositories. The research question would be whether automated API-change impact analysis can accurately locate affected client-code locations compared with manual inspection or simpler techniques. Is this a meaningful and sufficiently novel problem, and how could I narrow it into a practical major project?

3 Answers

Answered By AmberLynx62 On

There’s an important limitation: you can only reliably trace usage when you have access to the client source code or control the call sites. Public APIs often have unknown third-party consumers, so no tool can identify every affected application. Proper semantic versioning and maintaining older API versions are still necessary. You could position your project as a tool for teams that own both the API and its client applications.

Answered By QuietComet31 On

This becomes a strong and manageable project if you narrow the scope to one programming language and a specific class of clients. A possible workflow is:

1. Compare two OpenAPI specifications and detect removed endpoints, renamed parameters, deleted fields, and type changes.
2. Parse the client code into an AST and locate endpoint calls, parameter references, response-field accesses, and generated-client usage.
3. Produce a report showing the likely affected files and lines along with the API change that triggered each warning.
4. Evaluate it using repositories with known API-migration commits.

Measure precision, recall, false positives, false negatives, and the time required compared with grep, dependency-only analysis, or manual inspection. Be explicit about unsupported cases such as reflection, dynamically constructed URLs, and highly dynamic languages. The project is much more convincing if it ranks likely impact locations instead of claiming to perfectly predict every failure.

Answered By CedarWisp8 On

The idea is useful, but API versioning already prevents many breaking changes by allowing older consumers to keep using a previous version. Your tool would be most valuable as a notification and migration assistant—something that compares API specifications, highlights breaking changes, and warns developers before they upgrade. Think of it as change tracking for API contracts rather than a complete solution to every compatibility problem.

Related Questions

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.