jsonpatch

package module
v0.0.0-...-fb6f96b Latest Latest
Warning

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

Go to latest
Published: Apr 21, 2026 License: Apache-2.0 Imports: 9 Imported by: 0

README

jsonpatch

As per http://jsonpatch.com/ JSON Patch is specified in RFC 6902 from the IETF.

JSON Patch allows you to generate JSON that describes changes you want to make to a document, so you don't have to send the whole doc. JSON Patch format is supported by HTTP PATCH method, allowing for standards based partial updates via REST APIs.

go get github.com/platform-engineering-labs/jsonpatch

TODO: describe what this jsonpatch library does different than the one we forked

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ByPath

type ByPath []JsonPatchOperation

func (ByPath) Len

func (a ByPath) Len() int

func (ByPath) Less

func (a ByPath) Less(i, j int) bool

func (ByPath) Swap

func (a ByPath) Swap(i, j int)

type Collections

type Collections struct {
	EntitySets EntitySets
	Arrays     []Path
	Atomics    []Path
}

type EntitySets

type EntitySets map[Path]Key

func (EntitySets) Add

func (s EntitySets) Add(path Path, key Key)

func (EntitySets) Get

func (s EntitySets) Get(path Path) (Key, bool)

type JsonPatchOperation

type JsonPatchOperation struct {
	Operation string `json:"op"`
	Path      string `json:"path"`
	Value     any    `json:"value,omitempty"`
}

func CreatePatch

func CreatePatch(a, b []byte, collections Collections, ignoredFields []Path, strategy PatchStrategy) ([]JsonPatchOperation, error)

CreatePatch creates a patch as specified in http://jsonpatch.com/

'a' is original, 'b' is the modified document. Both are to be given as json encoded content. The function will return an array of JsonPatchOperations If ignoreArrayOrder is true, arrays with the same elements but in different order will be considered equal

An e rror will be returned if any of the two documents are invalid.

func NewPatch

func NewPatch(operation, path string, value any) JsonPatchOperation

func (*JsonPatchOperation) Json

func (j *JsonPatchOperation) Json() string

func (*JsonPatchOperation) MarshalJson

func (j *JsonPatchOperation) MarshalJson() ([]byte, error)

type Key

type Key string

type PatchStrategy

type PatchStrategy string
const (
	PatchStrategyExactMatch   PatchStrategy = "exact-match"
	PatchStrategyEnsureExists PatchStrategy = "ensure-exists"
	PatchStrategyEnsureAbsent PatchStrategy = "ensure-absent"
)

type Path

type Path string

Jump to

Keyboard shortcuts

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