{"id":"84f8d4c7-0539-47c4-8405-625004c53158","shortId":"ZC6uLN","kind":"skill","title":"Aspnet Minimal Api Openapi","tagline":"Awesome Copilot skill by Github","description":"# ASP.NET Minimal API with OpenAPI\n\nYour goal is to help me create well-structured ASP.NET Minimal API endpoints with correct types and comprehensive OpenAPI/Swagger documentation.\n\n## API Organization\n\n- Group related endpoints using `MapGroup()` extension\n- Use endpoint filters for cross-cutting concerns\n- Structure larger APIs with separate endpoint classes\n- Consider using a feature-based folder structure for complex APIs\n\n## Request and Response Types\n\n- Define explicit request and response DTOs/models\n- Create clear model classes with proper validation attributes\n- Use record types for immutable request/response objects\n- Use meaningful property names that align with API design standards\n- Apply `[Required]` and other validation attributes to enforce constraints\n- Use the ProblemDetailsService and StatusCodePages to get standard error responses\n\n## Type Handling\n\n- Use strongly-typed route parameters with explicit type binding\n- Use `Results<T1, T2>` to represent multiple response types\n- Return `TypedResults` instead of `Results` for strongly-typed responses\n- Leverage C# 10+ features like nullable annotations and init-only properties\n\n## OpenAPI Documentation\n\n- Use the built-in OpenAPI document support added in .NET 9\n- Define operation summary and description\n- Add operationIds using the `WithName` extension method\n- Add descriptions to properties and parameters with `[Description()]`\n- Set proper content types for requests and responses\n- Use document transformers to add elements like servers, tags, and security schemes\n- Use schema transformers to apply customizations to OpenAPI schemas","tags":["aspnet","minimal","api","openapi","awesome","copilot","github"],"capabilities":["skill","source-github","category-awesome-copilot"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/aspnet-minimal-api-openapi","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"install_from":"skills.sh"}},"qualityScore":"0.300","qualityRationale":"deterministic score 0.30 from registry signals: · indexed on skills.sh · published under github/awesome-copilot","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T13:40:15.318Z","embedding":null,"createdAt":"2026-04-18T20:25:57.107Z","updatedAt":"2026-04-22T13:40:15.318Z","lastSeenAt":"2026-04-22T13:40:15.318Z","tsv":"'10':157 '9':180 'ad':177 'add':186,193,213 'align':100 'annot':161 'api':3,12,27,36,54,69,102 'appli':105,225 'asp.net':10,25 'aspnet':1 'attribut':87,110 'awesom':5 'base':64 'bind':135 'built':172 'built-in':171 'c':156 'category-awesome-copilot' 'class':58,83 'clear':81 'complex':68 'comprehens':33 'concern':51 'consid':59 'constraint':113 'content':203 'copilot':6 'correct':30 'creat':21,80 'cross':49 'cross-cut':48 'custom':226 'cut':50 'defin':74,181 'descript':185,194,200 'design':103 'document':35,168,175,210 'dtos/models':79 'element':214 'endpoint':28,40,45,57 'enforc':112 'error':122 'explicit':75,133 'extens':43,191 'featur':63,158 'feature-bas':62 'filter':46 'folder':65 'get':120 'github':9 'goal':16 'group':38 'handl':125 'help':19 'immut':92 'init':164 'init-on':163 'instead':147 'larger':53 'leverag':155 'like':159,215 'mapgroup':42 'meaning':96 'method':192 'minim':2,11,26 'model':82 'multipl':142 'name':98 'net':179 'nullabl':160 'object':94 'openapi':4,14,167,174,228 'openapi/swagger':34 'oper':182 'operationid':187 'organ':37 'paramet':131,198 'problemdetailsservic':116 'proper':85,202 'properti':97,166,196 'record':89 'relat':39 'repres':141 'request':70,76,206 'request/response':93 'requir':106 'respons':72,78,123,143,154,208 'result':137,149 'return':145 'rout':130 'schema':222,229 'scheme':220 'secur':219 'separ':56 'server':216 'set':201 'skill':7 'source-github' 'standard':104,121 'statuscodepag':118 'strong':128,152 'strongly-typ':127,151 'structur':24,52,66 'summari':183 'support':176 't1':138 't2':139 'tag':217 'transform':211,223 'type':31,73,90,124,129,134,144,153,204 'typedresult':146 'use':41,44,60,88,95,114,126,136,169,188,209,221 'valid':86,109 'well':23 'well-structur':22 'withnam':190","prices":[{"id":"1907d6b9-13e3-4179-b994-2e4236f0f5f6","listingId":"84f8d4c7-0539-47c4-8405-625004c53158","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"github","category":"awesome-copilot","install_from":"skills.sh"},"createdAt":"2026-04-18T20:25:57.107Z"}],"sources":[{"listingId":"84f8d4c7-0539-47c4-8405-625004c53158","source":"github","sourceId":"github/awesome-copilot/aspnet-minimal-api-openapi","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/aspnet-minimal-api-openapi","isPrimary":false,"firstSeenAt":"2026-04-18T21:48:19.334Z","lastSeenAt":"2026-04-22T12:52:05.968Z"},{"listingId":"84f8d4c7-0539-47c4-8405-625004c53158","source":"skills_sh","sourceId":"github/awesome-copilot/aspnet-minimal-api-openapi","sourceUrl":"https://skills.sh/github/awesome-copilot/aspnet-minimal-api-openapi","isPrimary":true,"firstSeenAt":"2026-04-18T20:25:57.107Z","lastSeenAt":"2026-04-22T13:40:15.318Z"}],"details":{"listingId":"84f8d4c7-0539-47c4-8405-625004c53158","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"aspnet-minimal-api-openapi","source":"skills_sh","category":"awesome-copilot","skills_sh_url":"https://skills.sh/github/awesome-copilot/aspnet-minimal-api-openapi"},"updatedAt":"2026-04-22T13:40:15.318Z"}}