Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/mmontone/cl-rest-server
- Owner: mmontone
- License: mit
- Created: 2012-11-18T15:06:24.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2023-09-01T17:57:30.000Z (over 1 year ago)
- Last Synced: 2024-08-04T01:03:45.722Z (5 months ago)
- Topics: api, common-lisp, lisp, rest-api
- Language: Common Lisp
- Homepage: http://mmontone.github.io/cl-rest-server/cl-rest-server/
- Size: 3.47 MB
- Stars: 67
- Watchers: 10
- Forks: 9
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- curated-awesome-cl - cl-rest-server - a library for writing REST web APIs. Features validation with schemas, annotations for logging, caching, permissions or authentication, documentation via Swagger, etc. [MIT][200]. (REPLs ##)
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)