Here you will find all the specification types defined by our Json Schemas, in Go.
Current status of features implemented in the SDK is listed in the table below:
| Feature | Status |
|---|---|
| Parse workflow JSON and YAML definitions | ✔️ |
| Programmatically build workflow definitions | 🚫 |
| Validate workflow definitions (Schema) | ✔️ |
| Validate workflow definitions (Integrity) | ✔️ |
| Generate workflow diagram (SVG) | 🚫 |
| Latest Releases | Conformance to spec version |
|---|---|
| v1.0.0 | v0.5 |
| v2.0.1 | v0.6 |
| v2.1.0 | v0.7 |
Run the following command in the root of your Go's project:
$ go get github.com/serverlessworkflow/sdk-go/v2Your go.mod file should be updated to add a dependency from the Serverless Workflow specification.
To use the generated types, import the package in your go file like this:
import "github.com/serverlessworkflow/sdk-go/v2/model"Then just reference the package in your Go file like myfunction := model.Function{}.
Serverless Workflow Specification supports YAML and JSON files for Workflow definitions. To transform such files into a Go data structure, use:
package sw
import (
"github.com/serverlessworkflow/sdk-go/v2/model"
"github.com/serverlessworkflow/sdk-go/v2/parser"
)
func ParseWorkflow(filePath string) (*model.Workflow, error) {
workflow, err := parser.FromFile(filePath)
if err != nil {
return nil, err
}
return workflow, nil
} The Workflow structure then can be used in your application.