# Microsoft.Owin

**Kind:** Service

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

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

NuGet package dependency

`Microsoft.Owin` is a NuGet package dependency declared by `Pams.Core`. It supplies OWIN types and middleware integration points for handling HTTP requests when `Pams.Core` runs under an OWIN-compatible host.

## Diagram

```mermaid
sequenceDiagram
    participant Client
    participant Host as OWIN Host
    participant Middleware as Microsoft.Owin Middleware
    participant Core as Pams.Core

    Client->>Host: HTTP request
    Host->>Middleware: Create OWIN request context
    Middleware->>Core: Invoke application handling
    Core-->>Middleware: Response data
    Middleware-->>Host: Write HTTP response
    Host-->>Client: HTTP response
```

## Usage

```ts
// JavaScript clients consume endpoints hosted through the OWIN pipeline.
const response = await fetch("/api/pams", {
  method: "GET",
  headers: {
    Accept: "application/json",
  },
});

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

const data = await response.json();
console.log(data);
```

## AI Coding Instructions

- Treat `Microsoft.Owin` as a .NET package dependency, not as a JavaScript runtime module.
- Keep OWIN request and response handling at the host or middleware boundary; pass application-specific work into `Pams.Core`.
- Match middleware registration and configuration with the OWIN host used by the application.
- Avoid introducing incompatible OWIN package versions without checking existing project references and host configuration.
