  Web services often impose inter-parameter dependencies that restrict the way
in which two or more input parameters can be combined to form valid calls to
the service. Unfortunately, current specification languages for web services
like the OpenAPI Specification (OAS) provide no support for the formal
description of such dependencies, which makes it hardly possible to
automatically discover and interact with services without human intervention.
In this article, we present an approach for the specification and automated
analysis of inter-parameter dependencies in web APIs. We first present a
domain-specific language, called Inter-parameter Dependency Language (IDL), for
the specification of dependencies among input parameters in web services. Then,
we propose a mapping to translate an IDL document into a constraint
satisfaction problem (CSP), enabling the automated analysis of IDL
specifications using standard CSP-based reasoning operations. Specifically, we
present a catalogue of nine analysis operations on IDL documents allowing to
compute, for example, whether a given request satisfies all the dependencies of
the service. Finally, we present a tool suite including an editor, a parser, an
OAS extension, a constraint programming-aided library, and a test suite
supporting IDL specifications and their analyses. Together, these contributions
pave the way for a new range of specification-driven applications in areas such
as code generation and testing.
