动态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”;
});
});