Go module proxy / pkg.go.dev   Go Reference

The mockserver-client-go module provides an idiomatic Go client for MockServer's control-plane REST API. It has zero third-party runtime dependencies (pure net/http + encoding/json) and includes an on-demand binary launcher that starts MockServer without Java or Docker.

Install

go get github.com/mock-server/mockserver-monorepo/mockserver-client-go

Quick start

package main

import (
    "log"

    mockserver "github.com/mock-server/mockserver-monorepo/mockserver-client-go"
)

func main() {
    client := mockserver.New("localhost", 1080)

    // Create an expectation
    _, err := client.When(
        mockserver.Request().Method("GET").Path("/hello"),
    ).Respond(
        mockserver.Response().StatusCode(200).Body("world"),
    )
    if err != nil {
        log.Fatal(err)
    }

    // Verify the request was received at least once
    if err := client.Verify(
        mockserver.Request().Path("/hello"),
        mockserver.AtLeast(1),
    ); err != nil {
        log.Fatal(err)
    }

    // Reset
    client.Reset()
}

Launch MockServer from Go

The module includes a binary launcher — no Java installation or Docker required:

handle, err := mockserver.StartServer(1080, "", nil)
if err != nil {
    log.Fatal(err)
}
defer handle.Stop()

fmt.Printf("MockServer running on port %d\n", handle.Port)

See Running MockServer — client library launcher for full launcher options (version pinning, cache directory, air-gapped networks).

For the full Go client API, see MockServer clients.