mellon-web (hackage): The mellon-web package wraps a mellon-core controller in a REST web service, making it possible to control physical access devices from an HTTP client. The package includes both a WAI application server, and native Haskell client bindings for the service.  Like the mellon-core controller interface, the mellon-web REST API is quite simple. There are only 3 methods:  GET /time returns the system time on the server. This is made available for diagnostic purposes, primarily to ensure the server has an accurate clock.  GET /state returns the controller's current state (either Locked or Unlocked date where date is the UTC time at which the controller will automatically lock again).  PUT /state sets the controller's current state. Use this method to lock and unlock the controller.  For detailed documentation, the server includes a self-documenting Swagger spec.  Note that the mellon-web server does not provide an authentication mechanism! You should proxy it behind a secure, authenticating HTTPS server such as Nginx.
Keywords: bsd3|library|web|haskell|iot|physical-access