Agent skill
yarp-proxy
Configure YARP reverse proxy for affolterNET.Web.Bff. Use when setting up API proxying, route configuration, or backend service integration.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/testing/yarp-proxy-mcafee123-affolternet-web
SKILL.md
YARP Reverse Proxy
Configure YARP to proxy requests to backend APIs.
For complete reference, see Library Guide.
Quick Start
appsettings.json
{
"affolterNET": {
"ReverseProxy": {
"Routes": {
"api-route": {
"ClusterId": "api-cluster",
"Match": {
"Path": "/api/{**catch-all}"
}
}
},
"Clusters": {
"api-cluster": {
"Destinations": {
"api": {
"Address": "https://api.example.com"
}
}
}
}
}
}
}
How It Works
- BFF receives request to
/api/... - YARP matches the route pattern
AuthTransformadds bearer token from user session- Request is forwarded to backend API
- Response is returned to client
Configuration Options
Routes
{
"Routes": {
"route-name": {
"ClusterId": "cluster-name",
"Match": {
"Path": "/api/{**catch-all}",
"Methods": ["GET", "POST"]
},
"Transforms": []
}
}
}
Clusters
{
"Clusters": {
"cluster-name": {
"Destinations": {
"destination1": {
"Address": "https://api1.example.com"
},
"destination2": {
"Address": "https://api2.example.com"
}
},
"LoadBalancingPolicy": "RoundRobin"
}
}
}
Auth Transform
The BFF automatically adds bearer tokens to proxied requests:
// Automatically extracts access token from user session
var token = await context.GetTokenAsync("access_token");
// Adds Authorization: Bearer {token} header
Multiple Backend APIs
{
"affolterNET": {
"ReverseProxy": {
"Routes": {
"users-api": {
"ClusterId": "users",
"Match": { "Path": "/api/users/{**catch-all}" }
},
"orders-api": {
"ClusterId": "orders",
"Match": { "Path": "/api/orders/{**catch-all}" }
}
},
"Clusters": {
"users": {
"Destinations": {
"default": { "Address": "https://users-api.example.com" }
}
},
"orders": {
"Destinations": {
"default": { "Address": "https://orders-api.example.com" }
}
}
}
}
}
}
Path Rewriting
{
"Routes": {
"api-route": {
"ClusterId": "api",
"Match": { "Path": "/bff/api/{**remainder}" },
"Transforms": [
{ "PathRemovePrefix": "/bff" }
]
}
}
}
Troubleshooting
502 Bad Gateway
- Verify backend API is running and accessible
- Check destination address is correct
- Review network connectivity between BFF and API
Token not forwarded
- Ensure user is authenticated
- Verify access token is in session
- Check AuthTransform is registered
Route not matched
- Verify path pattern matches incoming request
- Check route order (more specific routes first)
- Enable YARP logging for debugging
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?