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...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:Proceedings of the European Conference on Software Maintenance and Reengineering s. 814 - 818
Hlavní autoři: Lercher, Alexander, Bauer, Clemens, Macho, Christian, Pinzger, Martin
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