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: 3 months 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 (over 12 years ago)
- Default Branch: master
- Last Pushed: 2025-01-18T14:57:00.000Z (5 months ago)
- Last Synced: 2025-01-18T15:40:04.753Z (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: 68
- 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
[](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)