How dulan-nimnaka/smart-campus-jaxrs-api works
This is a JAX-RS Smart Campus backend for discovering API resources and managing rooms, their sensors, and sensor readings. The main workflow is an HTTP client creating a room, registering a sensor linked to that room, then submitting and retrieving readings; the API keeps state in memory. The graph includes the documented discovery, filtering, validation, logging, and error-response capabilities. Resource and model interactions are supported by excerpts; server routing and filter registration are not shown, so those links are marked unverified.
Main entry points: SensorResource.java Sensor Endpoints · Main.java Embedded Server · SensorReadingResource.java Reading Endpoints · RoomResource.java Room Endpoints
Components 17
API Runtime
- Embedded Server
src/main/java/com/smartcampus/Main.java - API Configuration
src/main/java/com/smartcampus/config/ApplicationConfig.java - API Discovery
src/main/java/com/smartcampus/resource/DiscoveryResource.java - Request Logging
src/main/java/com/smartcampus/filter/LoggingFilter.java
Room Management
- Room Endpoints
src/main/java/com/smartcampus/resource/RoomResource.java - Room State
src/main/java/com/smartcampus/resource/RoomResource.java - Room Model
src/main/java/com/smartcampus/model/Room.java
Sensor Readings
- Sensor Endpoints
src/main/java/com/smartcampus/resource/SensorResource.java - Sensor State
src/main/java/com/smartcampus/resource/SensorResource.java - Sensor Model
src/main/java/com/smartcampus/model/Sensor.java - Reading Endpoints
src/main/java/com/smartcampus/resource/SensorReadingResource.java - Reading History
src/main/java/com/smartcampus/resource/SensorReadingResource.java - Reading Model
src/main/java/com/smartcampus/model/SensorReading.java
Error Handling
- Domain Exceptions
src/main/java/com/smartcampus/exception - HTTP Error Mappers
src/main/java/com/smartcampus/exception - Global Error Mapper
src/main/java/com/smartcampus/exception/GlobalExceptionMapper.java
Other components
- HTTP Client
Connections 22
- HTTP Client → Embedded Server: sends requests
README.md - Embedded Server → API Configuration: uses configuration
- Embedded Server → API Discovery: routes requests
- Embedded Server → Room Endpoints: routes requests
- Embedded Server → Sensor Endpoints: routes requests
- Embedded Server → Request Logging: applies filter
- Room Endpoints → Room State: reads and writes
src/main/java/com/smartcampus/resource/RoomResource.java - Room Endpoints → Room Model: handles rooms
src/main/java/com/smartcampus/resource/RoomResource.java - Sensor Endpoints → Sensor State: reads and writes
src/main/java/com/smartcampus/resource/SensorResource.java - Sensor Endpoints → Room State: looks up room
src/main/java/com/smartcampus/resource/SensorResource.java - Sensor Endpoints → Room Model: updates room link
src/main/java/com/smartcampus/resource/SensorResource.java - Sensor Endpoints → Sensor Model: handles sensors
src/main/java/com/smartcampus/resource/SensorResource.java - Sensor Endpoints → Reading Endpoints: returns subresource
src/main/java/com/smartcampus/resource/SensorResource.java - Reading Endpoints → Sensor State: looks up sensor
src/main/java/com/smartcampus/resource/SensorReadingResource.java - Reading Endpoints → Reading History: reads and writes
src/main/java/com/smartcampus/resource/SensorReadingResource.java - Reading Endpoints → Sensor Model: updates current value
src/main/java/com/smartcampus/resource/SensorReadingResource.java - Reading Endpoints → Reading Model: handles readings
src/main/java/com/smartcampus/resource/SensorReadingResource.java - Sensor Endpoints → Domain Exceptions: throws missing-link error
src/main/java/com/smartcampus/resource/SensorResource.java - Room Endpoints → Domain Exceptions: throws deletion conflict
src/main/java/com/smartcampus/resource/RoomResource.java - Reading Endpoints → Domain Exceptions: throws unavailable error
src/main/java/com/smartcampus/resource/SensorReadingResource.java - HTTP Error Mappers → Domain Exceptions: maps exceptions
src/main/java/com/smartcampus/exception/LinkedResourceNotFoundExceptionMapper.java - HTTP Error Mappers → HTTP Client: returns HTTP errors