api

package
v1.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 14, 2022 License: MPL-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package api contains general REST API definitions.

The REST API provides an interface to EliasDB. It allows querying and modifying of the datastore. The API responds to GET, POST, PUT and DELETE requests in JSON if the request was successful (Return code 200 OK) and plain text in all other cases.

Common API definitions

/about

Endpoint which returns an object with version information.

api_versions : List of available API versions e.g. [ "v1" ]
product      : Name of the API provider (EliasDB)
version:     : Version of the API provider
revision:    : Revision of the API provider

/swagger.json

Dynamically generated swagger definition file. See: http://swagger.io

Index

Constants

View Source
const APIRoot = "/db"

APIRoot is the root directory for the REST API

View Source
const APIVersion = "1.0.0"

APIVersion is the version of the REST API

View Source
const EndpointAbout = APIRoot + "/about/"

EndpointAbout is the about endpoint URL (rooted). Handles about/

View Source
const EndpointSwagger = APIRoot + "/swagger.json/"

EndpointSwagger is the swagger endpoint URL (rooted). Handles swagger.json/

Variables

View Source
var APIHost = "localhost:9090"

APIHost is the host definition for the REST API

View Source
var APISchemes = []string{"https"}

APISchemes is a list of supported protocol schemes

DD is the DistributedStorage instance which should be used by the REST API. (Only available if clustering is enabled.)

DDLog is a ringbuffer containing cluster related logs. (Only available if clustering is enabled.)

GM is the GraphManager instance which should be used by the REST API.

GS is the GraphStorage instance which should be used by the REST API.

View Source
var GeneralEndpointMap = map[string]RestEndpointInst{
	EndpointAbout:   AboutEndpointInst,
	EndpointSwagger: SwaggerEndpointInst,
}

GeneralEndpointMap contains general endpoints which should always be available

View Source
var HandleFunc = http.HandleFunc

HandleFunc to use for registering handlers

Should be of type: func(pattern string, handler func(http.ResponseWriter, *http.Request))

SI is the ScriptingInterpreter instance which is working with the api.GM GraphManager instance.

Functions

func RegisterRestEndpoints

func RegisterRestEndpoints(endpointInsts map[string]RestEndpointInst)

RegisterRestEndpoints registers all given REST endpoint handlers.

Types

type DefaultEndpointHandler

type DefaultEndpointHandler struct {
}

DefaultEndpointHandler represents the default endpoint handler.

func (*DefaultEndpointHandler) HandleDELETE

func (de *DefaultEndpointHandler) HandleDELETE(w http.ResponseWriter, r *http.Request, resources []string)

HandleDELETE is a method stub returning an error.

func (*DefaultEndpointHandler) HandleGET

func (de *DefaultEndpointHandler) HandleGET(w http.ResponseWriter, r *http.Request, resources []string)

HandleGET is a method stub returning an error.

func (*DefaultEndpointHandler) HandlePOST

func (de *DefaultEndpointHandler) HandlePOST(w http.ResponseWriter, r *http.Request, resources []string)

HandlePOST is a method stub returning an error.

func (*DefaultEndpointHandler) HandlePUT

func (de *DefaultEndpointHandler) HandlePUT(w http.ResponseWriter, r *http.Request, resources []string)

HandlePUT is a method stub returning an error.

type RestEndpointHandler

type RestEndpointHandler interface {

	/*
		HandleGET handles a GET request.
	*/
	HandleGET(w http.ResponseWriter, r *http.Request, resources []string)

	/*
		HandlePOST handles a POST request.
	*/
	HandlePOST(w http.ResponseWriter, r *http.Request, resources []string)

	/*
		HandlePUT handles a PUT request.
	*/
	HandlePUT(w http.ResponseWriter, r *http.Request, resources []string)

	/*
		HandleDELETE handles a DELETE request.
	*/
	HandleDELETE(w http.ResponseWriter, r *http.Request, resources []string)

	/*
		SwaggerDefs is used to describe the endpoint in swagger.
	*/
	SwaggerDefs(s map[string]interface{})
}

RestEndpointHandler models a REST endpoint handler.

func AboutEndpointInst

func AboutEndpointInst() RestEndpointHandler

AboutEndpointInst creates a new endpoint handler.

func SwaggerEndpointInst

func SwaggerEndpointInst() RestEndpointHandler

SwaggerEndpointInst creates a new endpoint handler.

type RestEndpointInst

type RestEndpointInst func() RestEndpointHandler

RestEndpointInst models a factory function for REST endpoint handlers.

Directories

Path Synopsis
Package ac contains management code for access control.
Package ac contains management code for access control.
Package v1 contains EliasDB REST API Version 1.
Package v1 contains EliasDB REST API Version 1.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL