AutoGuard: Reporting Breaking Changes of REST APIs from Java Spring Boot Source Code
REpresentational State Transfer (REST) Application Programming Interfaces (APIs) are widely used for the communication between loosely coupled web services. While the loose coupling allows services to evolve independently, it requires development teams to actively identify changes in their REST APIs...
Uloženo v:
| Vydáno v: | Proceedings of the European Conference on Software Maintenance and Reengineering s. 814 - 818 |
|---|---|
| Hlavní autoři: | , , , |
| Médium: | Konferenční příspěvek |
| Jazyk: | angličtina |
| Vydáno: |
IEEE
04.03.2025
|
| Témata: | |
| ISSN: | 2640-7574 |
| On-line přístup: | Získat plný text |
| Tagy: |
Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
|
| Abstract | REpresentational State Transfer (REST) Application Programming Interfaces (APIs) are widely used for the communication between loosely coupled web services. While the loose coupling allows services to evolve independently, it requires development teams to actively identify changes in their REST APIs to notify teams of affected services. If overlooked, changes can result in unexpected breaking changes that lead to failures in the affected service. In this paper, we present AutoGuard, our tool for automatically extracting and reporting breaking changes of REST APIs in services developed with the popular Java Spring Boot framework. AutoGuard consists of two components: the first component generates the OpenAPI descriptions of two versions of a REST API from the source code; the second component extracts and logs the differences between them and reports the API breaking changes. AutoGuard's static analysis does not require running a service to understand its REST API changes, enabling direct integration into the development process. We integrated AutoGuard into GitHub's and GitLab' s contin-uous integration workflows, where it automatically generates the REST API change logs for pull and merge requests and reports any breaking changes. With this information, developers and code reviewers can make informed decisions on how to proceed with the requests. Video demonstration: https:/Iyoutu.be/3qeWIVfMvWE Tool repository: https:/Igithub.com/MSA-API-Management/AutoGuard |
|---|---|
| AbstractList | REpresentational State Transfer (REST) Application Programming Interfaces (APIs) are widely used for the communication between loosely coupled web services. While the loose coupling allows services to evolve independently, it requires development teams to actively identify changes in their REST APIs to notify teams of affected services. If overlooked, changes can result in unexpected breaking changes that lead to failures in the affected service. In this paper, we present AutoGuard, our tool for automatically extracting and reporting breaking changes of REST APIs in services developed with the popular Java Spring Boot framework. AutoGuard consists of two components: the first component generates the OpenAPI descriptions of two versions of a REST API from the source code; the second component extracts and logs the differences between them and reports the API breaking changes. AutoGuard's static analysis does not require running a service to understand its REST API changes, enabling direct integration into the development process. We integrated AutoGuard into GitHub's and GitLab' s contin-uous integration workflows, where it automatically generates the REST API change logs for pull and merge requests and reports any breaking changes. With this information, developers and code reviewers can make informed decisions on how to proceed with the requests. Video demonstration: https:/Iyoutu.be/3qeWIVfMvWE Tool repository: https:/Igithub.com/MSA-API-Management/AutoGuard |
| Author | Bauer, Clemens Macho, Christian Lercher, Alexander Pinzger, Martin |
| Author_xml | – sequence: 1 givenname: Alexander surname: Lercher fullname: Lercher, Alexander email: alexander.lercher@aau.at organization: University of Klagenfurt,Department of Informatics Systems,Klagenfurt,Austria – sequence: 2 givenname: Clemens surname: Bauer fullname: Bauer, Clemens email: clemens.bauer@aau.at organization: University of Klagenfurt,Department of Informatics Systems,Klagenfurt,Austria – sequence: 3 givenname: Christian surname: Macho fullname: Macho, Christian email: christian.macho@aau.at organization: University of Klagenfurt,Department of Informatics Systems,Klagenfurt,Austria – sequence: 4 givenname: Martin surname: Pinzger fullname: Pinzger, Martin email: martin.pinzger@aau.at organization: University of Klagenfurt,Department of Informatics Systems,Klagenfurt,Austria |
| BookMark | eNotkM1OAjEUhavRREDeQJO-wODtbTtt3Y0TRAxRw-CatLSDqExJZyDx7cWf1TmLLydfTp-cNbEJhFwzGDEG5qYqnsbzXHDGRggoRwCg-QkZGmU050xyyQBOSQ9zAZmSSlyQftu-AyAIBj2yKPZdnOxt8rd0HnYxdZtmTe9SsB8_pXyzzTq0NNZ0Pq4WtHiZtrROcUsf7cHSapd-8Rg7WsV9WgVaRh8uyXltP9sw_M8Beb0fL8qHbPY8mZbFLNswpbuslmCUFcZpr4NZafR2lUvnHTqmpfDMaFQAVqPMHVNWAXdoBFjUOXh0fECu_nY3IYTl0WVr09fyeItBgTn_BthvURc |
| CODEN | IEEPAD |
| ContentType | Conference Proceeding |
| DBID | 6IE 6IL CBEJK RIE RIL |
| DOI | 10.1109/SANER64311.2025.00083 |
| DatabaseName | IEEE Electronic Library (IEL) Conference Proceedings IEEE Xplore POP ALL IEEE Xplore All Conference Proceedings IEEE Electronic Library (IEL) IEEE Proceedings Order Plans (POP All) 1998-Present |
| DatabaseTitleList | |
| Database_xml | – sequence: 1 dbid: RIE name: IEEE Electronic Library (IEL) url: https://ieeexplore.ieee.org/ sourceTypes: Publisher |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISBN | 9798331535100 |
| EISSN | 2640-7574 |
| EndPage | 818 |
| ExternalDocumentID | 10992426 |
| Genre | orig-research |
| GroupedDBID | 6IE 6IF 6IK 6IL 6IN AAWTH ABLEC ADZIZ ALMA_UNASSIGNED_HOLDINGS BEFXN BFFAM BGNUA BKEBE BPEOZ CBEJK CHZPO IEGSK IPLJI M43 OCL RIE RIL RNS |
| ID | FETCH-LOGICAL-i178t-f5097a49b8d8e9c82dac65bdb2b1854d1982700a8256b17a703b2940a2860d2b3 |
| IEDL.DBID | RIE |
| ISICitedReferencesCount | 0 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=001506888600075&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| IngestDate | Wed Aug 27 01:54:24 EDT 2025 |
| IsPeerReviewed | false |
| IsScholarly | false |
| Language | English |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-i178t-f5097a49b8d8e9c82dac65bdb2b1854d1982700a8256b17a703b2940a2860d2b3 |
| PageCount | 5 |
| ParticipantIDs | ieee_primary_10992426 |
| PublicationCentury | 2000 |
| PublicationDate | 2025-March-4 |
| PublicationDateYYYYMMDD | 2025-03-04 |
| PublicationDate_xml | – month: 03 year: 2025 text: 2025-March-4 day: 04 |
| PublicationDecade | 2020 |
| PublicationTitle | Proceedings of the European Conference on Software Maintenance and Reengineering |
| PublicationTitleAbbrev | SANER |
| PublicationYear | 2025 |
| Publisher | IEEE |
| Publisher_xml | – name: IEEE |
| SSID | ssj0020410 |
| Score | 1.9004441 |
| Snippet | REpresentational State Transfer (REST) Application Programming Interfaces (APIs) are widely used for the communication between loosely coupled web services.... |
| SourceID | ieee |
| SourceType | Publisher |
| StartPage | 814 |
| SubjectTerms | API Evolution Application programming interfaces Backward compatibility Continuous integration Data models Java Pipelines Representational state transfer REST API Semantics Software Source coding Static analysis Web services |
| Title | AutoGuard: Reporting Breaking Changes of REST APIs from Java Spring Boot Source Code |
| URI | https://ieeexplore.ieee.org/document/10992426 |
| WOSCitedRecordID | wos001506888600075&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1NawIxEA1VeujJflj6zRx63ZrsxiTbm4rSliJSLXiTZJMFL27R1d_fTHa1vfTQS1hCYGGG4WXe5M0Q8oicsUkMjThPsohnCse8-LjyUOCwe4kQNvSZfZfjsZrP00ktVg9aGOdceHzmnvAz1PJtkW2RKutgFQchpUEaUopKrHXIrihntJbo-HOdaW88_PBwyzAJjJE4odga8NcIlYAgo9Y__31K2j9aPJgcUOaMHLnVOWnthzFAHZsXZNbblkVw-DNUt2p_HPr-TohkOFQqgg0UOXibz6A3ed0AakvgTe80VPwe9IuihGng82FQWNcmn6PhbPAS1SMToiWTqoxyj_9S89Qoq1zqLW91JrrGmth4YOaWpQorzdrnhcIwqX28mzjlVMdKUBub5JI0V8XKXRHouq5QCfVrzjiTAvu4J4LbHDM2mbJr0kYrLb6qrhiLvYFu_ti_JSfoiPB-i9-RZrneuntynO3K5Wb9EHz5DcYcm_g |
| linkProvider | IEEE |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1Na8JAEF1aW2hP9sNiv-fQa2o2WTeb3lQUbW2QmoI3yWY34MUUjf7-7myi7aWHXkIIC4EZhjfzZt8MIU_IGUtfug5jfuqwVOCaFxNXBgo0Ti_hXNk5s-MgisRsFk4qsbrVwmit7eUz_Yyvtpev8nSDVFkLuzgIKYfkCFdnVXKtfX3lMupWIh1zsjXtRP0PA7gUy0APqRMXhwP-WqJiMWRQ_-ffz0jjR40Hkz3OnJMDvbwg9d06Bqii85LEnU2RW5e_QJlXm-PQNVkh0uFQ6gjWkGdgrB5DZzJaA6pL4DXZJlAyfNDN8wKmltGHXq50g3wO-nFv6FRLE5wFDUThZCYDCBIWSqGEDo3tVZLytlTSkwaamaKhwF5zYipDLmmQmIiXXsjcxBPcVZ70r0htmS91k0Bbt7nwXfPMKKMBx0nuPmcqw5otCOk1aaCV5l_lXIz5zkA3f3x_JCfD-H08H4-it1tyik6xt7nYHakVq42-J8fptlisVw_Wr98ZoJ9B |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=Proceedings+of+the+European+Conference+on+Software+Maintenance+and+Reengineering&rft.atitle=AutoGuard%3A+Reporting+Breaking+Changes+of+REST+APIs+from+Java+Spring+Boot+Source+Code&rft.au=Lercher%2C+Alexander&rft.au=Bauer%2C+Clemens&rft.au=Macho%2C+Christian&rft.au=Pinzger%2C+Martin&rft.date=2025-03-04&rft.pub=IEEE&rft.eissn=2640-7574&rft.spage=814&rft.epage=818&rft_id=info:doi/10.1109%2FSANER64311.2025.00083&rft.externalDocID=10992426 |