Network service
The installation of the Digital Reading Room contains a performant web server, that provides a web application and a read-only API on the local network. This service is activated and stopped with the power button ().

The only option available is the server port, 3000 by default, in case that the same is being used by other application or blocked by network policy. The DRR attaches the web server to all the available network interfaces, wither Ethernet or WiFi, and to both protocols, IPv4 and IPv6. A computed connected to the same network can use any of these to load the web client.
The Web Client
The DRR and the web server have been designed to be performant and use as many resources as available, working even in low powered computers. This makes it possible to use even discarded hardware to provide a well functional service, not needing to invest in additional infrastructure. However, the more powerful the hardware (for example, the more memory, CPU cores, and SSD hard disk), the better the end user experience. In theory, the system can serve several hundred simultaneous users on moderate hardware.
The recommended equipment to use as a server is a CPU with at least 2 or more cores, 8Gb of RAM, and a Gigabit Ethernet connection. Windows 8+ systems will work, but best results are achieved with Linux systems (Ubuntu 20.04+)
The REST API
In addition to the web client, the server also provides a read-only RESTful API, so integration with other systems is possible. When activating the server, the API address is also shown on the screen. All information is delivered as valid JSON objects, and all requests are received using the GET HTTP message.
API Endpoints
-
GET /api/system/configuration
-
GET /api/system/summary
-
GET /api/collections/
-
GET /api/collections/:id
-
GET /api/collections/:id/images
-
GET /api/collections/:id/images/:id
-
GET /api/collections/:id/records
-
GET /api/libraries/
-
GET /api/libraries/:id
-
GET /api/libraries/:id/collections
-
GET /api/libraries/:id/collections/count
-
GET /api/records/:id
-
GET /api/records/search?
-
GET /api/records/search/paged?
Query string search fields for records could contain any of the following:
- collection_id
- name
- surname
- location
- date_from
- date_to
When the last parameter in an endpoint refers to an identificator (:id), the returned value is an object. Otherwise, an array of objects.