# Microsoft.Web.Infrastructure

**Kind:** Service

**Source:** `Pams/API/Pams.API/Pams.API.csproj` (line 1)

**Part of:** [Pams](subsystem-pams)

NuGet package dependency

Microsoft.Web.Infrastructure is a NuGet package reference in `Pams.API.csproj` that provides web infrastructure assemblies for the Pams API application's ASP.NET runtime. It is resolved by the server project; client code interacts with Pams API endpoints rather than importing this package directly.

## Diagram

```mermaid
sequenceDiagram
    participant Client
    participant PamsAPI as Pams API
    participant WebInfrastructure as Microsoft.Web.Infrastructure

    Client->>PamsAPI: Send API request
    PamsAPI->>WebInfrastructure: Use registered web infrastructure
    WebInfrastructure-->>PamsAPI: Provide runtime support
    PamsAPI-->>Client: Return API response
```

## Usage

```ts
// Microsoft.Web.Infrastructure runs within the Pams API server.
// JavaScript clients call the API endpoint exposed by that application.

async function getResource() {
  const response = await fetch("/api/resource");

  if (!response.ok) {
    throw new Error(`Request failed: ${response.statusText}`);
  }

  return response.json();
}

getResource().then((data) => {
  console.log(data);
});
```

## AI Coding Instructions

- Treat `Microsoft.Web.Infrastructure` as a server-side NuGet dependency; do not import it from TypeScript or JavaScript.
- Keep package references in `Pams.API.csproj` compatible with the ASP.NET runtime used by the API project.
- Check for related ASP.NET configuration or startup code before removing or changing this dependency.
- Test API startup and request handling after package version changes, since the package participates in web runtime behavior.
