User: what is REST API
Assistant: REST API is an architectural style for building network APIs. In practice, most REST APIs are using JSON over HTTP. REST APIs have several properties that make them very popular.

HTTP is the foundational and the most popular network protocol across the internet. By using HTTP, REST APIs can fully utilize the internet infrastructure, which greatly reduce the complexity and operational costs. For example, using HTTPS for transport security, and using URL for request routing.

JSON is a simple, stable, and intuitive data format , which is not expected to change ever. This offers great ease of use and stability to REST APIs. For high performance applications, binary formats can be used instead, such as protobuf or thrift.

REST APIs are often designed as CRUD APIs, where API operations are commonly expressed as Create, Retrieve, Update, and Delete operations on resources. CRUD operations are naturally mapped to HTTP methods (POST, GET, PUT/PATCH, and DELETE), and API resources can be naturally identified using URLs.