動態API
在編寫完Servcie後,如果在對應每一個方法寫一個httpget或者httppsot方法,那工作量真的是太大了,要瘋掉了,好在abp幫我們實現了這些。
修改Web項目的Module文件
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpNavigationOptions>(options =>
{
options.MenuContributors.Add(new ShopMenuContributor());
});
Configure<AbpVirtualFileSystemOptions>(options =>
{
options.FileSets.AddEmbedded<ShopWebModule>("LY.Shop.Web");
});
context.Services.AddAutoMapperObjectMapper<ShopWebModule>();
Configure<AbpAutoMapperOptions>(options =>
{
options.AddMaps<ShopWebModule>(validate: true);
});
Configure<RazorPagesOptions>(options =>
{
//Configure authorization.
});
//修改這裏注入自動api的服務模塊
Configure<AbpAspNetCoreMvcOptions>(options =>
{
options
.ConventionalControllers
.Create(typeof(ShopApplicationModule).Assembly);
});
}
注意
- 自己定義的方法不要有簡單的Get命名,這樣會導致和框架的衝突,無法生成有效的接口。
- 生成接口的規則如下
- Get: 如果方法名稱以GetList,GetAll或Get開頭.
- Put: 如果方法名稱以Put或Update開頭.
- Delete: 如果方法名稱以Delete或Remove開頭.
- Post: 如果方法名稱以Create,Add,Insert或Post開頭.
- Patch: 如果方法名稱以Patch開頭.
- 其他情況, Post 爲 默認方式.
路由配置
Configure(options =>
{
options.ConventionalControllers
.Create(typeof(BookStoreApplicationModule).Assembly, opts =>
{
opts.RootPath = “volosoft/book-store”;
});
});