...

Package couchserver

import "github.com/go-kivik/kivik/v4/x/kivikd/couchserver"
Overview
Index

Overview ▾

Package couchserver aims to provide a CouchDB-compatible HTTP server interface to a kivik.Client.

Constants

CompatVersion is the default CouchDB compatibility provided by this package.

const CompatVersion = "0.0.0"

func DB

func DB(r *http.Request) string

DB returns the db name in this request, or "" if none.

type Handler

Handler is a CouchDB server handler.

type Handler struct {

    // CompatVersion is the CouchDB compatibility version to report. If unset,
    // defaults to the CompatVersion constant/.
    CompatVersion string
    // Vendor is the vendor name to report. If unset, defaults to the
    // kivik.Vendor constant.
    Vendor string
    // VendorVersion is the vendor version to report. If unset, defaults to the
    // kivik.VendorVersion constant.
    VendorVersion string
    Logger        *log.Logger
    // Favicon is the path to a favicon.ico to serve.
    Favicon string
    // SessionKey is a temporary solution to avoid import cycles. Soon I will move the key to another package.
    SessionKey interface{}
    // contains filtered or unexported fields
}

func NewHandler

func NewHandler(client *kivik.Client) *Handler

NewHandler returns a CouchDB server handler.

func (*Handler) Flush

func (h *Handler) Flush() http.HandlerFunc

Flush handles POST /{db}/_ensure_full_commit

func (*Handler) GetAllDBs

func (h *Handler) GetAllDBs() http.HandlerFunc

GetAllDBs handles GET /_all_dbs

func (*Handler) GetDB

func (h *Handler) GetDB() http.HandlerFunc

GetDB handles GET /{db}

func (*Handler) GetFavicon

func (h *Handler) GetFavicon() http.HandlerFunc

GetFavicon serves GET /favicon.ico

func (*Handler) GetRoot

func (h *Handler) GetRoot() http.HandlerFunc

GetRoot handles requests for: GET /

func (*Handler) GetSession

func (h *Handler) GetSession() http.HandlerFunc

GetSession serves GET /_session

func (*Handler) HandleError

func (h *Handler) HandleError(w http.ResponseWriter, err error)

HandleError returns a CouchDB-formatted error. It does nothing if err is nil.

func (*Handler) HeadDB

func (h *Handler) HeadDB() http.HandlerFunc

HeadDB handles HEAD /{db}

func (*Handler) Main

func (h *Handler) Main() http.Handler

Main returns an http.Handler to handle all CouchDB endpoints.

func (*Handler) PutDB

func (h *Handler) PutDB() http.HandlerFunc

PutDB handles PUT /{db}