github.com/goadesign/goa/goagen/gen_client


genclient

import "github.com/goadesign/goa/goagen/gen_client"

Overview

Package genclient provides a generator for the client tool and package of a goa application. The generator creates a main.go file and a subpackage containing data structures specific to the service.

The generated code includes a client package with:

* One client method per resource action
* Helper functions to build the corresponding request paths
* Structs for the action payloads and dependent types
* Structs for the action media types and corresponding decoder functions

The generated code also includes a CLI tool with commands for each action and sub-commands for each resource.

Index

Package files

cli_generator.go doc.go generator.go options.go

func Generate

func Generate() (files []string, err error)

Generate is the generator entry point called by the meta generator.

type Generator

type Generator struct {
    API         *design.APIDefinition // The API definition
    OutDir      string                // Path to output directory
    Target      string                // Name of generated package
    ToolDirName string                // Name of tool directory where CLI main is generated once
    Tool        string                // Name of CLI tool
    NoTool      bool                  // Whether to skip tool generation
    // contains filtered or unexported fields
}

Generator is the application code generator.

func NewGenerator

func NewGenerator(options ...Option) *Generator

NewGenerator returns an initialized instance of a Go Client Generator

func (*Generator) Cleanup

func (g *Generator) Cleanup()

Cleanup removes all the files generated by this generator during the last invokation of Generate.

func (*Generator) Generate

func (g *Generator) Generate() (_ []string, err error)

Generate generats the client package and CLI.

type Option

type Option func(*Generator)

Option a generator option definition

func API

func API(API *design.APIDefinition) Option

API The API definition

func NoTool

func NoTool(noTool bool) Option

NoTool Whether to skip tool generation

func OutDir

func OutDir(outDir string) Option

OutDir Path to output directory

func Target

func Target(target string) Option

Target Name of generated package

func Tool

func Tool(tool string) Option

Tool Name of CLI tool

func ToolDirName

func ToolDirName(toolDirName string) Option

ToolDirName Name of tool directory where CLI main is generated once


Generated by godoc2md