code: func (r *ResourceDefinition) FullPath() string {
  	if strings.HasPrefix(r.BasePath, "//") {
  		return httppath.Clean(r.BasePath)
  	}
  	var basePath string
  	if p := r.Parent(); p != nil {
  		if ca := p.CanonicalAction(); ca != nil {
  			if routes := ca.Routes; len(routes) > 0 {
  				// Note: all these tests should be true at code generation time
  				// as DSL validation makes sure that parent resources have a
  				// canonical path.
  				basePath = path.Join(routes[0].FullPath())
  			}
  		}
  	} else {
  		basePath = Design.BasePath
  	}
  	return httppath.Clean(path.Join(basePath, r.BasePath))
  }
docs: // FullPath computes the base path to the resource actions concatenating the API and parent resource
  // base paths as needed.