https://github.com/juliobetta/clojure-api
A toy API
https://github.com/juliobetta/clojure-api
learn-by-doing
Last synced: about 1 year ago
JSON representation
A toy API
- Host: GitHub
- URL: https://github.com/juliobetta/clojure-api
- Owner: juliobetta
- Created: 2022-05-09T21:15:40.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2022-05-09T21:15:59.000Z (about 4 years ago)
- Last Synced: 2025-02-10T08:29:44.187Z (over 1 year ago)
- Topics: learn-by-doing
- Language: Clojure
- Homepage:
- Size: 6.84 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# clojure-api
FIXME
## Getting Started
1. Start the application: `lein run`
2. Go to [localhost:8080](http://localhost:8080/) to see: `Hello World!`
3. Read your app's source code at src/clojure_api/service.clj. Explore the docs of functions
that define routes and responses.
4. Run your app's tests with `lein test`. Read the tests at test/clojure_api/service_test.clj.
5. Learn more! See the [Links section below](#links).
## Configuration
To configure logging see config/logback.xml. By default, the app logs to stdout and logs/.
To learn more about configuring Logback, read its [documentation](http://logback.qos.ch/documentation.html).
## Developing your service
1. Start a new REPL: `lein repl`
2. Start your service in dev-mode: `(def dev-serv (run-dev))`
3. Connect your editor to the running REPL session.
Re-evaluated code will be seen immediately in the service.
### [Docker](https://www.docker.com/) container support
1. Configure your service to accept incoming connections (edit service.clj and add ::http/host "0.0.0.0" )
2. Build an uberjar of your service: `lein uberjar`
3. Build a Docker image: `sudo docker build -t clojure-api .`
4. Run your Docker image: `docker run -p 8080:8080 clojure-api`
### [OSv](http://osv.io/) unikernel support with [Capstan](http://osv.io/capstan/)
1. Build and run your image: `capstan run -f "8080:8080"`
Once the image it built, it's cached. To delete the image and build a new one:
1. `capstan rmi clojure-api; capstan build`
## Connect IDE with running REPL
_IntelliJ_
* Go to Run > Edit Configurations and add a Remote Clojure REPL.
* Set Connection Type to nREPL.
* Set Host to localhost and port to the one that appears in the output of `lein repl`.
* Set Context Module to the current project.
* Save and close the configuration.
* Hit Run and you're ready to go.
Whenever you change your code, hit command-shit-P to re-evaluate it in the REPL.
## Links
* [Other Pedestal examples](http://pedestal.io/samples)