# README
zipapi
A small coding challenge project.
zipapi is an HTTP(S) API that takes files uploaded to POST /archive
as multipart/form-data
into a zip archive and returns it as a response.
Roadmap
- Required:
- Upload of multiple files and creating a zip file out of them
- Provide the zip file back to the API user
- Serve multiple requesting clients at the same time
- Limit the size of each uploaded file
- Nice to have:
- Provide automated API tests
- CI
- Retain a history of all created Zip files and their contents *
- Expire created Zip files after a specific period of time **
* There's currently no database-backed persistency implementation but just a simple in-memory mock. Implementing one shouldn't be a problem though.
** This service shouldn't be responsible for this problem. There must be a separate service that periodically goes over the database and cleans up expired files.
Getting started
- Download the latest release from releases
- Compile
/cmd/zipapi
usinggo build
- Define a configuration using
/cmd/zipapi/config.toml
as a template - Run the server using
./zipapi -config /path/to/config.toml
providing the path to your configuration file.