Skip to content

nstogner/pathfmt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pathfmt

Parse variables from paths like /items/{id} in Go.

Structs

import (
	"fmt"
	"log"

	"github.com/nstogner/pathfmt"
)

func main() {
	type UserIdentifier struct {
		OrgNum int    `path:"org_num"`
		ID     string `path:"id"`
	}

	f := pathfmt.New("/organizations/{org_num}/users/{id}")

	var u UserIdentifier
	if err := f.ToStruct("/organizations/123/users/nick", &u); err != nil {
		log.Fatal(err)
	}

	fmt.Println(u.OrgNum, u.ID)
	// Output: 123 nick
}

Maps

import (
	"fmt"
	"log"

	"github.com/nstogner/pathfmt"
)

func main() {
	f := pathfmt.New("/api/v1/users/{id}")

	m, err := f.ToMap("/api/v1/users/123")
	if err != nil {
		log.Fatal(err)
	}

	fmt.Println(m)
	// Output: map[id:123]
}