Skip to content

Feature Request: REST API / HTTP Interface for Runtime Register Access #53

Description

@cybcon

Summary

Add a built-in HTTP/REST API to the Modbus mock server that allows reading and writing register values at runtime — without requiring a Modbus client.

Motivation

A REST interface is arguably the most requested feature for Modbus mock servers. Many teams rely on CI/CD pipelines and integration test frameworks that have no native Modbus client available. Forcing these workflows to spin up a dedicated Modbus client just to seed or verify register values adds unnecessary complexity and friction.

Proposed API

A minimal, intuitive interface could look like this:

# Read a holding register
GET /registers/holding/42

# Write a holding register
POST /registers/holding/42
Content-Type: application/json

{ "value": 1337 }

The same pattern should apply to all register types (coil, discrete, input, holding).

Use Cases

  • Prepopulating register values before a test run
  • Asserting register state after a device interaction in automated tests
  • Integrating with test orchestration tools (e.g. pytest, Postman, GitHub Actions) without a Modbus dependency
  • Resetting or inspecting mock state via simple curl commands during development

Expected Behavior

  • The HTTP server runs alongside the Modbus server on a configurable port
  • Responses are JSON-formatted
  • Errors (e.g. invalid register address) return appropriate HTTP status codes (400, 404, etc.)

Why This Matters

This feature would significantly lower the barrier to using the mock server in modern DevOps and testing workflows, where HTTP is the lingua franca for tooling integration.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions