REST APIs, as well as their deficits with respect to compliance with the REST architectural style Knowing and analyzing this data in detail, may help to improve the state of the art with purposeful solutions. Software systems may face recurring design problems good solutions to which are known as design patterns that improve the design quality and facilitate maintenance and evolution of software systems. Anti-patterns are the attempted RESTful HTTP usage that creates issues showing the failed adoption of REST ideas. Sometimes it is a poor and counterproductive solution to the design issues. Therefore it is necessary to detect REST anti-patterns for improved maintenance and evolution of RESTful systems. RESTful services are gaining increasing popularity day by day Twitter, Google, Facebook, YouTube, and many more companies leverage REST. However, the usage of REST for designing and developing Web-based applications has increased which has raised the threats to common software engineering challenges. In fact like any other software system, RESTful systems also must evolve to handle new resources i.e meet new business requirements and become scalable. Even the changes in underlying technologies or protocols may force the REST APIs to change.
Abstract. A REST API is an application program interface that uses HTTP protocol for making requests to a web server using GET, PUT, POST and DELETE methods on the data. A RESTful API also referred to as a RESTful web service is based on representational state transfer. REST technology an architectural style and approach to communications often used in web services development. REST is a very popular architectural choice for building Web-based applications due to its resources. Many worldwide used APIs are analyzed not to be fully compliant to the principles of HTTP. In this work I intend to study description documents of REST APIs and perform structural analysis. I will base my findings on manually examining a body of publicly available API descriptions and provide conclusions about common description forms output types usage of API parameters authentication details and level of reusability. This analysis can be used as a basis for devising common standards and guidelines for API development. This project aims to classify the patterns and anti-patterns as well as mark their presence in a few real-world APIs if found. Keywords REST design patterns anti-patterns REST API structural analysis.