Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mmontone/cl-rest-server

Serve REST APIs from Common Lisp
https://github.com/mmontone/cl-rest-server

api common-lisp lisp rest-api

Last synced: about 1 month ago
JSON representation

Serve REST APIs from Common Lisp

Awesome Lists containing this project

README

        

Common Lisp REST Server
=======================

*rest-server* is a library for writing REST Web APIs in Common Lisp

[![Build Status](https://travis-ci.org/mmontone/cl-rest-server.svg?branch=master)](https://travis-ci.org/mmontone/cl-rest-server)

| :warning: WARNING |
|:------------------------------------------------------------------|
| This project's documentation is outdated and cannot be relied on. |
| Not everything works. The project needs to be better maintained. |

## Install

The library is available at [Ultralisp](https://ultralisp.org).

## Documentation

[HTML](http://mmontone.github.io/cl-rest-server/cl-rest-server/)

## Features

* Method matching
- Based on HTTP method (GET, PUT, POST, DELETE)
- Based on Accept request header
- URL parsing (argument types)

* Serialization
- Different serialization types (JSON, XML, S-expressions)

* Error handling
- Development and production modes
- HTTP status codes

* Validation via schemas

* Annotations for api logging, caching, permission checking, and more.

* Authentication
- Different methods (token based, oauth)

* API client
- Generation of API client functions via macros

* Alpha OpenAPI support
- [Parse Open API v3 apis and generate Lisp API spec from it](test/openapi.lisp)

* APIs documentation
- Via Swagger: http://swagger.wordnik.com

## Demo

* [Basic service](/demo)
* [OpenAPI service](/demo/openapi)