practicalli / practicalli/clojure-web-services

Repl driven development with ring server

Open
#8 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

project ring
Dominant language
Markdown
Stars
16
Forks
14
PR merge metrics
No merged PRs in 30d

Description

Update: use Clojure CLI, reitit over Leiningen approach

Instead of lein ring server and having to set up an nrepl connection to the running process (or use wrap-reload), you can start a repl in the project and then start the ring server (jetty, etc) from inside the repl (or evaluating some commented out code in the source file)

Starting the ring server inside the clojure-jack-in repl will block further input at the REPL buffer.

Use the join? option to be able to interact with repl after starting a ring server

Set join? to false to continue using the repl after starting the server and allows request handlers to be changed without restarting the repl or server.

-dev-main function is often created to set different code for development. This is also suggested by lein-ring for including wrap-reload.

-repl-main could be a function that is configured to start the ring server using the join? option

join? option - set to false to prevent the server blocking https://ring-clojure.github.io/ring/ring.adapter.jetty.html

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the Clojure CLI REPL and Ring Jetty setup described in the issue, focusing on how the development entry points are configured. Done means a documented or implemented REPL workflow starts the server with join? false while keeping the REPL usable and allowing handler changes without restarting.

Written by the indexing model from the issue text.

Assessment

Tech stack
clojure
Domain
api, backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.