Install
$ agentstack add skill-burakdmir-abp-skills-abp-api ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
ABP Framework — API Development
ABP Framework v10.4 API development. Auto API Controllers, Dynamic/Static C# Clients, Swagger, API Versioning.
Trigger
- "ABP API controller"
- "ABP auto controller"
- "ABP dynamic client"
- "ABP swagger"
- "ABP API versioning"
- "ABP REST API"
Auto API Controllers
PreConfigure(options =>
{
options.ConventionalControllers.Create(typeof(BookStoreApplicationModule).Assembly);
});
HTTP Method Mapping
| Prefix | HTTP | |---|---| | GetList, GetAll, Get | GET | | Put, Update | PUT | | Delete, Remove | DELETE | | Create, Add, Insert, Post | POST | | Patch | PATCH |
Route Examples
| Method | Route | |---|---| | GetAsync(Guid id) | /api/app/book/{id} | | GetListAsync() | /api/app/book | | CreateAsync(CreateBookDto input) | /api/app/book | | UpdateAsync(Guid id, UpdateBookDto input) | /api/app/book/{id} | | DeleteAsync(Guid id) | /api/app/book/{id} |
RemoteService
[RemoteService(IsEnabled = false)] // Don't expose as API
public class PersonAppService : ApplicationService { }
Dynamic C# Client Proxies
abp add-package Volo.Abp.Http.Client
context.Services.AddHttpClientProxies(typeof(BookStoreApplicationContractsModule).Assembly);
{ "RemoteServices": { "Default": { "BaseUrl": "http://localhost:53929/" } } }
// Usage — inject the interface
var books = await _bookAppService.GetListAsync();
Static C# Client Proxies
abp generate-proxy -t csharp
abp generate-proxy -t csharp --without-contracts
Swagger
context.Services.AddAbpSwaggerGen(options =>
{
options.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });
});
// Init
app.UseSwagger();
app.UseAbpSwaggerUI(options => options.SwaggerEndpoint("/swagger/v1/swagger.json", "v1"));
API Versioning
[ApiVersion("1.0")]
[ApiVersion("2.0")]
public class BookAppService : ApplicationService, IBookAppService { }
Best Practices
- Use Auto API Controllers — don't write controllers manually
- Use dynamic client proxies — don't use HttpClient manually
- Prefer static proxies in production
- Add JWT auth in Swagger
- Ensure backward compatibility with API versioning
Related
[DDD](../abp-ddd/SKILL.md) · [UI](../abp-ui/SKILL.md) · [Microservices](../abp-microservices/SKILL.md) · [Authorization](../abp-authorization/SKILL.md) · Docs: https://abp.io/docs/latest/framework/api-development
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: burakdmir
- Source: burakdmir/abp-skills
- License: MIT
- Homepage: https://abp.io/docs/latest
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.