Return
RestPi: Path-Sensitive Type Inference for REST APIs
DOI:10.1145/3763055.png)
Abstract
En 中文
REST APIs form the backbone of modern interconnected systems by providing a language-agnostic communication interface. REST API specifications should clearly describe all response types, but automatically generating specifications is difficult with existing tools. We present REST pi, a type inference engine capable of automatically generating REST API specifications. The novel contribution of REST pi is our use of path-sensitive type inference, which encodes symbolic path-constraints directly into a type system. This allows REST pi to enumerate all response types by considering each distinct execution path through an endpoint implementation. We implement path-sensitive type inference for Ruby, a popular language used for REST API servers. We evaluate REST pi by using it to infer types for 132 endpoints across 5 open-source REST API implementations without utilizing existing specifications or test suites. We find REST pi performs type inference efficiently and produces types that are more precise and complete than those obtained via an HTTP proxy. Our results suggest that path-sensitivity is a key technique to enumerate distinct response types for REST endpoints.
Keywords:
Path-Sensitive Analysis
RESTful APIs
Type Inference
Journal
P
IF:
2.8
Papers:
308
Citations:
4.7K

