Go module to work with Postman Collections.
This module aims to provide a simple way to work with Postman collections. Using this module, you can create collections, update them and export them into the Postman Collection format v2 (compatible with Insomnia)
Postman Collections are a group of saved requests you can organize into folders. For more information about Postman Collections, you can visit the official documentation.
package main
import (
"os"
postman "github.com/rbretecher/go-postman-collection"
)
func main() {
file, err := os.Open("postman_collection.json")
defer file.Close()
if err != nil {
panic(err)
}
c, err := postman.ParseCollection(file)
_ = c
}
package main
import (
"os"
postman "github.com/rbretecher/go-postman-collection"
)
func main() {
c := postman.CreateCollection("My collection", "My awesome collection")
c.AddItemGroup("A folder").AddItem(&postman.Item{
Name: "This is a request",
Request: Request{
URL: &URL{
Raw: "http://www.google.fr",
},
Method: postman.Get,
},
})
file, err := os.Create("postman_collection.json")
defer file.Close()
if err != nil {
panic(err)
}
err = c.Write(file)
if err != nil {
panic(err)
}
}
Items
are the basic unit for a Postman collection, it can either be a request (Item
) or a folder (ItemGroup
).
// Create a simple item.
item := postman.CreateItem(postman.Item{
Name: "A basic request",
Request: Request{
URL: &URL{
Raw: "http://www.google.fr",
},
Method: postman.Get,
}
})
// Create a simple folder.
folder := postman.CreateItemGroup(postman.ItemGroup{
Name: "A folder",
})
// Add the item to the folder
folder.AddItem(item)
Part of the Item
, a Request
represents an HTTP request.
// Basic request
req := Request{
URL: &URL{
Raw: "http://www.google.fr",
},
Method: postman.Get,
}
// Complex request
req := postman.Request{
URL: &postman.URL{
Raw: "http://www.google.fr",
},
Method: postman.Post,
Body: &postman.Body{
Mode: "raw",
Raw: "{\"key\": \"value\"}",
},
}
Auth
can be added to a Request
or an ItemGroup
.
// Create basic auth with username and password
auth := postman.CreateAuth(postman.Basic, postman.CreateAuthParam("username", "password"))
Variable
can be added to Collection
, Item
, ItemGroup
and URL
.
v := postman.CreateVariable("env", "prod")
For now, it does not offer support all objects. Feel free to submit a pull request if you want to add support for one of those objects.
Object | v2.0.0 | v2.1.0 |
---|---|---|
Collection | Yes | Yes |
ItemGroup (Folder) | Yes | Yes |
Item | Yes | Yes |
Request | Yes | Yes |
Response | Yes | Yes |
Event | Yes | Yes |
Variable | Yes | Yes |
Auth | Yes | Yes |