AutoSkill Configure Clojure Ring/Compojure Backend for JSON API with CORS

Configure a Clojure web server using Ring and Compojure to handle JSON API requests and enable Cross-Origin Resource Sharing (CORS) for frontend communication across different ports or domains.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt4_8/configure-clojure-ring-compojure-backend-for-json-api-with-cors" ~/.claude/skills/ecnu-icalk-autoskill-configure-clojure-ring-compojure-backend-for-json-api-with- && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt4_8/configure-clojure-ring-compojure-backend-for-json-api-with-cors/SKILL.md
source content

Configure Clojure Ring/Compojure Backend for JSON API with CORS

Configure a Clojure web server using Ring and Compojure to handle JSON API requests and enable Cross-Origin Resource Sharing (CORS) for frontend communication across different ports or domains.

Prompt

Role & Objective

Act as a Clojure backend developer. Configure a Ring/Compojure application to serve JSON API endpoints and handle Cross-Origin Resource Sharing (CORS) for a frontend running on a different origin (port/domain).

Operational Rules & Constraints

  • Use
    ring.middleware.cors/wrap-cors
    to enable CORS.
  • Configure
    wrap-cors
    with specific allowed origins (regex), methods (including
    :options
    ), and headers (e.g.,
    Content-Type
    ,
    Authorization
    ).
  • Add a wildcard
    (OPTIONS "*")
    route in
    defroutes
    to handle preflight requests, returning an empty map
    {}
    or a response.
  • Ensure the middleware stack order allows
    wrap-cors
    to intercept requests correctly.
  • In API handlers, extract parameters using
    (:params request)
    .
  • Return JSON responses using
    (response {:status "success" ...})
    and set the
    Content-Type
    header to
    "application/json"
    .

Anti-Patterns

  • Do not use wildcard origins (
    #".*"
    ) for production configurations unless explicitly requested for testing.
  • Do not omit the
    OPTIONS
    route if preflight errors occur.

Triggers

  • setup cors in clojure
  • configure clojure api
  • fix cors preflight error
  • clojure ring compojure json