https://github.com/logicblocks/example-metosin-service
An example Clojure service using Metosin libraries
https://github.com/logicblocks/example-metosin-service
Last synced: 2 months ago
JSON representation
An example Clojure service using Metosin libraries
- Host: GitHub
- URL: https://github.com/logicblocks/example-metosin-service
- Owner: logicblocks
- Created: 2021-04-06T13:56:10.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2025-03-13T12:26:09.000Z (2 months ago)
- Last Synced: 2025-03-13T13:29:15.708Z (2 months ago)
- Language: Clojure
- Size: 177 KB
- Stars: 1
- Watchers: 7
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# example-metosin-service
An example Clojure service using some [Metosin libraries](https://github.com/metosin).
* HTTP server: [aleph](https://github.com/clj-commons/aleph)
* HTTP encoding/decoding/format negotiation: [muuntaja](https://github.com/metosin/muuntaja)
* Routing: [reitit](https://github.com/metosin/reitit)
* JSON encoding/decoding: [jsonista](https://github.com/metosin/jsonista)
* URL generation: [hype](https://github.com/b-social/hype)
* Component framework: [integrant](https://github.com/weavejester/integrant)
* Persistence: [crux](https://github.com/juxt/crux)## Learnings:
1. Using `hype` for URL generation is possible by modifying the expander function, which allows you to define the routes
in the bidi-style route structure that `hype` expects. EDIT: more complicated use cases do not seem possible due to
differences in how route parameters are defined
2. Integrant serves to create components that have a lifecycle. It allows you to define
configuration for these components, but does not give capabilities out of the box to load
configuration from various sources (environment, yaml/json file). I.e, it is not a replacement
for [configurati](https://github.com/logicblocks/configurati)