天天看点

abp学习日志七(动态API)动态API路由配置

文章目录

  • 动态API
    • 注意
  • 路由配置

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

注意

  1. 自己定义的方法不要有简单的Get命名,这样会导致和框架的冲突,无法生成有效的接口。
  2. 生成接口的规则如下
    • Get: 如果方法名称以GetList,GetAll或Get开头.
    • Put: 如果方法名称以Put或Update开头.
    • Delete: 如果方法名称以Delete或Remove开头.
    • Post: 如果方法名称以Create,Add,Insert或Post开头.
    • Patch: 如果方法名称以Patch开头.
    • 其他情况, Post 为 默认方式.
abp学习日志七(动态API)动态API路由配置

路由配置

Configure(options =>

{

options.ConventionalControllers

.Create(typeof(BookStoreApplicationModule).Assembly, opts =>

{

opts.RootPath = “volosoft/book-store”;

});

});

继续阅读