What is RESTar?

RESTar is a .NET REST API framework for Starcounter applications, that is free to use and easy to set up in new or existing applications. Its purpose is to provide a set of high-quality tools for developers to build great REST APIs, without having to deal with the complexities (and sometimes utter boringness) associated with client authentication, request processing, data integrations, performance optimizations, URI conventions and documentation.

If the term “REST API” is unfamiliar to you, we recommend that you read this excellent tutorial, that covers all you need to know.

Using RESTar tools, developers can quickly build powerful REST APIs that, among other things:

  1. Authenticate and authorize clients using role-based access control and API keys
  2. Create web resources from Starcounter database tables or any other persistent or transient data
  3. Allow external clients to interact with the resources using standard HTTP methods like GET and POST, and content types like JSON and XML
  4. Allow advanced queries like filtering, renaming, searching and ordering of resource representations before they are returned to the client
  5. Handle and categorize errors during request evaluation for easy remote debugging
  6. Allow clients to set up database indexes to optimize database queries
  7. Can save any data to an Excel file
  8. Allow clients to set up HTTP callbacks using webhooks that listen for custom events
  9. Have a built-in WebSocket shell that clients can use to explore and consume the REST API, as well as support for custom websocket resources

Terminology

A RESTar application is any Starcounter application that uses the tools of RESTar to establish a REST API. We will refer to the REST API as simply the web services provided by a RESTar application. RESTar web service and RESTar API are also used interchangeably in these articles to refer to the web services of a RESTar application. A web resource, or just resource, is – in common terminology – anything that can be named, addressed or interacted with using, for example, a REST API.