API Refactoring to Patterns: Catalog, Template and Tools for Remote Interface Evolution

Mirko Stocker, Olaf Zimmermann · 2023

Refactoring is an essential agile practice for software evolution. While program-internal code-level refactoring is well established, architecture-level refactoring has been researched but not yet widely adopted in practice. As a result, application programming interface (API) refactoring is not well understood, and practitioners consequently struggle with the evolution of distributed systems using Web APIs and other remoting technologies. To fill this knowledge gap, we propose to apply refactoring to the problem of designing and developing adaptive APIs. This paper introduces an Interface Refactoring Catalog (IRC) and presents eight of its refactorings. IRC has been available online since 2021 and collects 22 refactorings at present. Eleven of these patterns leverage Patterns for API Design, originating from our previous work; the remaining ones deal with the number and size of API endpoints and their operations, cover renaming of these API building blocks and message representation elements, and deal with architectural change.

Read the paper · More papers on PaperTik