# GoAppResource Constructors

- Package: [Aspire.Hosting.Go](/reference/api/csharp/aspire.hosting.go.md)
- Type: [GoAppResource](/reference/api/csharp/aspire.hosting.go/goappresource.md)
- Kind: `Constructors`
- Members: `1`

Represents a Go application resource in the distributed application model.

## GoAppResource(string, string)

- Name: `Constructor(string, string)`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/becb48e2d61099e35ae336d527d3875e928d6594/src/Aspire.Hosting.Go/GoAppResource.cs#L37)

Represents a Go application resource in the distributed application model.

```csharp
public class GoAppResource
{
    public GoAppResource(
        string name,
        string workingDirectory)
    {
        // ...
    }
}
```

## Parameters

- `name` (`string`)
  The name of the resource in the application model.
- `workingDirectory` (`string`)
  The working directory for the Go application, typically the directory containing `go.mod`.

## Remarks

This resource allows Go applications to run as part of a distributed application. The resource manages the Go toolchain, working directory, and lifecycle of the Go application.

Go applications can expose HTTP endpoints, communicate with other services, and participate in service discovery like other Aspire resources. They support automatic OpenTelemetry instrumentation when configured with the appropriate Go packages.

## Examples

Add a Go web application to the distributed application model:

```csharp
var builder = DistributedApplication.CreateBuilder(args);

var api = builder.AddGoApp("api", "../go-api")
    .WithHttpEndpoint(port: 8080);

builder.Build().Run();
```
