How arvindkumar028/api-playground works
fsit-journey is a Spring Boot API testing playground. Users register or log in for JWT access, manage posts, and publish posts; post events can enqueue signed webhook deliveries, which are sent to configured receivers and recorded for inspection. Users can also register webhooks, send test events, and review delivery history. The README documents PostgreSQL, Redis caching, and Mailhog integrations. Webhook dispatch is asynchronous after transaction commit per the publisher documentation; the listener’s implementation was not sampled, so that internal handoff is not shown.
Main entry points: PostService.java Post workflow · WebhookEventPublisher.java Event enqueueing · WebhookService.java Webhook management · WebhookDeliverer.java Signed delivery retries
Components 22
Identity and access
- Authentication API
api/src/main/java/org/api/playground/auth/AuthController.java - JWT issuance
api/src/main/java/org/api/playground/auth/TokenService.java - Users and roles
api/src/main/java/org/api/playground/user/User.java - User repository
api/src/main/java/org/api/playground/user/UserRepository.java
Posts and publishing
- Posts API
api/src/main/java/org/api/playground/post/PostController.java - Post workflow
api/src/main/java/org/api/playground/post/PostService.java - Post repository
api/src/main/java/org/api/playground/post/PostRepository.java - Post lifecycle
api/src/main/java/org/api/playground/post/Post.java
Webhook management and delivery
- Webhook API
api/src/main/java/org/api/playground/webhook/WebhookController.java - Webhook management
api/src/main/java/org/api/playground/webhook/WebhookService.java - Webhook subscriptions
api/src/main/java/org/api/playground/webhook/Webhook.java - Webhook repository
api/src/main/java/org/api/playground/webhook/WebhookRepository.java - Event enqueueing
api/src/main/java/org/api/playground/webhook/WebhookEventPublisher.java - Delivery history
api/src/main/java/org/api/playground/webhook/WebhookDeliveryRepository.java - Delivery state
api/src/main/java/org/api/playground/webhook/WebhookDelivery.java - Signed delivery retries
api/src/main/java/org/api/playground/webhook/WebhookDeliverer.java
Runtime integrations
- Publication email
api/src/main/java/org/api/playground/mail/MailService.java - Webhook receiver
webhook-receiver/receiver.py - PostgreSQL
- Post cache
- Mailhog
Other components
- API client
Connections 24
- API client → Authentication API: logs in
README.md - Authentication API → User repository: looks up users
api/src/main/java/org/api/playground/auth/AuthController.java - Authentication API → JWT issuance: issues token
api/src/main/java/org/api/playground/auth/AuthController.java - API client → Posts API: manages posts
README.md - Posts API → Post workflow: delegates actions
api/src/main/java/org/api/playground/post/PostController.java - Post workflow → Post repository: reads and writes
api/src/main/java/org/api/playground/post/PostService.java - Post workflow → Event enqueueing: publishes events
api/src/main/java/org/api/playground/post/PostService.java - Post workflow → Publication email: sends publication email
api/src/main/java/org/api/playground/post/PostService.java - Post workflow → Post cache: caches post reads
README.md - Post workflow → PostgreSQL: persists posts
- Publication email → Mailhog: delivers email
README.md - API client → Webhook API: manages webhooks
README.md - Webhook API → Webhook management: delegates requests
api/src/main/java/org/api/playground/webhook/WebhookController.java - Webhook management → Webhook repository: manages subscriptions
api/src/main/java/org/api/playground/webhook/WebhookService.java - Webhook management → Delivery history: reads history
api/src/main/java/org/api/playground/webhook/WebhookService.java - Webhook management → Event enqueueing: publishes test event
api/src/main/java/org/api/playground/webhook/WebhookService.java - Event enqueueing → Delivery history: records deliveries
api/src/main/java/org/api/playground/webhook/WebhookEventPublisher.java - Event enqueueing → Webhook repository: selects subscribers
api/src/main/java/org/api/playground/webhook/WebhookEventPublisher.java - Signed delivery retries → Delivery history: claims and updates
api/src/main/java/org/api/playground/webhook/WebhookDeliverer.java - Signed delivery retries → Webhook repository: loads webhook secret
api/src/main/java/org/api/playground/webhook/WebhookDeliverer.java - Signed delivery retries → Webhook receiver: sends signed requests
README.md - Event enqueueing → Signed delivery retries: dispatches after commit
- Webhook repository → PostgreSQL: persists subscriptions
- Delivery history → PostgreSQL: persists history