{"id":"https://openalex.org/W4414977465","doi":"https://doi.org/10.1145/3763055","title":"RestPi: Path-Sensitive Type Inference for REST APIs","display_name":"RestPi: Path-Sensitive Type Inference for REST APIs","publication_year":2025,"publication_date":"2025-10-09","ids":{"openalex":"https://openalex.org/W4414977465","doi":"https://doi.org/10.1145/3763055"},"language":"en","primary_location":{"id":"doi:10.1145/3763055","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3763055","pdf_url":null,"source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by-nd","license_id":"https://openalex.org/licenses/cc-by-nd","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://doi.org/10.1145/3763055","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5075313631","display_name":"Mark W. Aldrich","orcid":"https://orcid.org/0000-0001-5269-7063"},"institutions":[{"id":"https://openalex.org/I121934306","display_name":"Tufts University","ror":"https://ror.org/05wvpxv85","country_code":"US","type":"education","lineage":["https://openalex.org/I121934306"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Mark W. Aldrich","raw_affiliation_strings":["Tufts University, Medford, USA"],"raw_orcid":"https://orcid.org/0000-0001-5269-7063","affiliations":[{"raw_affiliation_string":"Tufts University, Medford, USA","institution_ids":["https://openalex.org/I121934306"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5094255540","display_name":"Kyla H. Levin","orcid":"https://orcid.org/0009-0005-2533-7499"},"institutions":[{"id":"https://openalex.org/I177605424","display_name":"Amherst College","ror":"https://ror.org/028vqfs63","country_code":"US","type":"education","lineage":["https://openalex.org/I177605424"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Kyla H. Levin","raw_affiliation_strings":["University of Massachusetts at Amherst, Amherst, USA"],"raw_orcid":"https://orcid.org/0009-0005-2533-7499","affiliations":[{"raw_affiliation_string":"University of Massachusetts at Amherst, Amherst, USA","institution_ids":["https://openalex.org/I177605424"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5044646652","display_name":"Michael Coblenz","orcid":"https://orcid.org/0000-0002-9369-4069"},"institutions":[{"id":"https://openalex.org/I36258959","display_name":"University of California San Diego","ror":"https://ror.org/0168r3w48","country_code":"US","type":"education","lineage":["https://openalex.org/I36258959"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Michael Coblenz","raw_affiliation_strings":["University of California at San Diego, La Jolla, USA"],"raw_orcid":"https://orcid.org/0000-0002-9369-4069","affiliations":[{"raw_affiliation_string":"University of California at San Diego, La Jolla, USA","institution_ids":["https://openalex.org/I36258959"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5038702707","display_name":"Jeffrey S. Foster","orcid":"https://orcid.org/0000-0001-8043-1166"},"institutions":[{"id":"https://openalex.org/I121934306","display_name":"Tufts University","ror":"https://ror.org/05wvpxv85","country_code":"US","type":"education","lineage":["https://openalex.org/I121934306"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Jeffrey S. Foster","raw_affiliation_strings":["Tufts University, Medford, USA"],"raw_orcid":"https://orcid.org/0000-0001-8043-1166","affiliations":[{"raw_affiliation_string":"Tufts University, Medford, USA","institution_ids":["https://openalex.org/I121934306"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":4,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":1.7588,"has_fulltext":false,"cited_by_count":1,"citation_normalized_percentile":{"value":0.88897593,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":95,"max":98},"biblio":{"volume":"9","issue":"OOPSLA2","first_page":"144","last_page":"165"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T11424","display_name":"Security and Verification in Computing","score":0.9986000061035156,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T11424","display_name":"Security and Verification in Computing","score":0.9986000061035156,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T12127","display_name":"Software System Performance and Reliability","score":0.9965000152587891,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.996399998664856,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/rest","display_name":"Rest (music)","score":0.7218999862670898},{"id":"https://openalex.org/keywords/inference","display_name":"Inference","score":0.6880999803543091},{"id":"https://openalex.org/keywords/type-inference","display_name":"Type inference","score":0.6629999876022339},{"id":"https://openalex.org/keywords/key","display_name":"Key (lock)","score":0.557699978351593},{"id":"https://openalex.org/keywords/type","display_name":"Type (biology)","score":0.49320000410079956},{"id":"https://openalex.org/keywords/path","display_name":"Path (computing)","score":0.43619999289512634}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7495999932289124},{"id":"https://openalex.org/C77265313","wikidata":"https://www.wikidata.org/wiki/Q879844","display_name":"Rest (music)","level":2,"score":0.7218999862670898},{"id":"https://openalex.org/C2776214188","wikidata":"https://www.wikidata.org/wiki/Q408386","display_name":"Inference","level":2,"score":0.6880999803543091},{"id":"https://openalex.org/C198370458","wikidata":"https://www.wikidata.org/wiki/Q586459","display_name":"Type inference","level":3,"score":0.6629999876022339},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.618399977684021},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.557699978351593},{"id":"https://openalex.org/C2777299769","wikidata":"https://www.wikidata.org/wiki/Q3707858","display_name":"Type (biology)","level":2,"score":0.49320000410079956},{"id":"https://openalex.org/C2777735758","wikidata":"https://www.wikidata.org/wiki/Q817765","display_name":"Path (computing)","level":2,"score":0.43619999289512634},{"id":"https://openalex.org/C26713055","wikidata":"https://www.wikidata.org/wiki/Q245962","display_name":"Implementation","level":2,"score":0.414900004863739},{"id":"https://openalex.org/C28719098","wikidata":"https://www.wikidata.org/wiki/Q44946","display_name":"Point (geometry)","level":2,"score":0.39340001344680786},{"id":"https://openalex.org/C138958017","wikidata":"https://www.wikidata.org/wiki/Q190087","display_name":"Data type","level":2,"score":0.37929999828338623},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.3212999999523163},{"id":"https://openalex.org/C46743427","wikidata":"https://www.wikidata.org/wiki/Q1341685","display_name":"Inference engine","level":3,"score":0.31040000915527344},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.2994999885559082},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.2809000015258789},{"id":"https://openalex.org/C2779639559","wikidata":"https://www.wikidata.org/wiki/Q7661178","display_name":"Symbolic execution","level":3,"score":0.2705000042915344},{"id":"https://openalex.org/C3746660","wikidata":"https://www.wikidata.org/wiki/Q1068763","display_name":"Rule of inference","level":2,"score":0.2662000060081482}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3763055","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3763055","pdf_url":null,"source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by-nd","license_id":"https://openalex.org/licenses/cc-by-nd","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"}],"best_oa_location":{"id":"doi:10.1145/3763055","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3763055","pdf_url":null,"source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by-nd","license_id":"https://openalex.org/licenses/cc-by-nd","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":27,"referenced_works":["https://openalex.org/W1577231857","https://openalex.org/W1993760289","https://openalex.org/W2094382938","https://openalex.org/W2101512909","https://openalex.org/W2103714221","https://openalex.org/W2126094482","https://openalex.org/W2136601052","https://openalex.org/W2140809377","https://openalex.org/W2243050748","https://openalex.org/W2295244175","https://openalex.org/W2731814385","https://openalex.org/W2766883992","https://openalex.org/W2790334838","https://openalex.org/W2949550571","https://openalex.org/W2963384924","https://openalex.org/W3014933227","https://openalex.org/W3047848029","https://openalex.org/W3106293840","https://openalex.org/W3109059682","https://openalex.org/W4210995425","https://openalex.org/W4213274161","https://openalex.org/W4224306538","https://openalex.org/W4226087539","https://openalex.org/W4312297578","https://openalex.org/W4388447795","https://openalex.org/W4394744166","https://openalex.org/W7077040510"],"related_works":[],"abstract_inverted_index":{"REST":[0,15,44,98,116,164],"APIs":[1],"form":[2],"the":[3],"backbone":[4],"of":[5,41,50,55],"modern":[6],"interconnected":[7],"systems":[8],"by":[9,76,104],"providing":[10],"a":[11,36,65,93,155],"language-agnostic":[12],"communication":[13],"interface.":[14],"API":[16,45,99,117],"specifications":[17,27,122],"should":[18],"clearly":[19],"describe":[20],"all":[21,73],"response":[22,74,161],"types,":[23],"but":[24],"automatically":[25,42],"generating":[26,43],"is":[28,52,154],"difficult":[29],"with":[30],"existing":[31,121],"tools.":[32],"We":[33,86,101,126],"present":[34],"REST\ud835\udf0b,":[35],"type":[37,57,66,89,130],"inference":[38,90,131],"engine":[39],"capable":[40],"specifications.":[46],"The":[47],"novel":[48],"contribution":[49],"REST\ud835\udf0b":[51,70,103,128],"our":[53],"use":[54],"path-sensitive":[56,88],"inference,":[58],"which":[59],"encodes":[60],"symbolic":[61],"path-constraints":[62],"directly":[63],"into":[64],"system.":[67],"This":[68],"allows":[69],"to":[71,107,158],"enumerate":[72,159],"types":[75,109,135,162],"considering":[77],"each":[78],"distinct":[79,160],"execution":[80],"path":[81],"through":[82],"an":[83,146],"endpoint":[84],"implementation.":[85],"implement":[87],"for":[91,97,110,163],"Ruby,":[92],"popular":[94],"language":[95],"used":[96],"servers.":[100],"evaluate":[102],"using":[105],"it":[106],"infer":[108],"132":[111],"endpoints":[112],"across":[113],"5":[114],"open-source":[115],"implementations":[118],"without":[119],"utilizing":[120],"or":[123],"test":[124],"suites.":[125],"find":[127],"performs":[129],"efficiently":[132],"and":[133,140],"produces":[134],"that":[136,152],"are":[137],"more":[138],"precise":[139],"complete":[141],"than":[142],"those":[143],"obtained":[144],"via":[145],"HTTP":[147],"proxy.":[148],"Our":[149],"results":[150],"suggest":[151],"path-sensitivity":[153],"key":[156],"technique":[157],"endpoints.":[165]},"counts_by_year":[{"year":2026,"cited_by_count":1}],"updated_date":"2026-06-11T09:08:48.828518","created_date":"2025-10-10T00:00:00"}
