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.
Scanned 5/30/2026
Install via CLI
openskills install gabrielmoreira/agent-skills-mirror---
id: "8c5d7d61-5b31-4033-b8c9-b53ee03bb6b5"
name: "Configure Clojure Ring/Compojure Backend for JSON API with CORS"
description: "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."
version: "0.1.0"
tags:
- "clojure"
- "ring"
- "compojure"
- "cors"
- "web-development"
- "api"
triggers:
- "setup cors in clojure"
- "configure clojure api"
- "fix cors preflight error"
- "clojure ring compojure json"
---
# 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
No comments yet. Be the first to comment!