基于querybuilder的可根据现有数据表自动生成Restful API的dotnet中间件
AutoApi
基于SqlKata Query Builder的可根据数据表自动生成Restful API的dotnet中间件
项目地址
支持的数据库
- MySql AutoApi.MySql
- SqlServer AutoApi.SqlServer
- PostgreSQL AutoApi.PostgreSQL
- Oracle AutoApi.Oracle
- Sqlite AutoApi.Sqlite
- Firebird AutoApi.Firebird
示例
用法
安装nuget包 AutoApi.Core
Install-Package AutoApi.Core -Version 1.0.3or
dotnet add package AutoApi.Core --version 1.0.3安装数据库对应类型的nuget包,比SQL Server安装 AutoApi.SqlServer
Install-Package AutoApi.SqlServer -Version 1.0.0or
dotnet add package AutoApi.SqlServer --version 1.0.0在文件Startup.cs中的ConfigureServices方法中添加如下代码:
services.AddAutoRestfulApi()
.UseSqlServer(connectionString);//Your sql server database connection string
在文件Startup.cs中的Configure方法中添加如下代码:
app.UseAutoRestfulApi();
API内置格式
生成api的访问路径统一为:/api/{TableName}
GET
暂不支持/api/{TableName}/{PrimaryKey}这种路由,后续版本考虑增加表名以及字段名称自定义映射功能后会支持。当前版本主要支持以下功能:
- 分页查询
接口路径为:/api/{TableName}?page=&size= 或者 /api/{TableName}?offset=&limit= 两种方式 - 排序
升序接口路径为:/api/{TableName}?orderAsc={列名1,列名2,列名3,.....}
降序接口路径为:/api/{TableName}?orderDesc={列名1,列名2,列名3,.....} - 特殊运算,比如大于等于、小于等于、大于、小于、IN、LIKE查询
大于等于:/api/{TableName}?{列名}.ge={值}
大于:/api/{TableName}?{列名}.gt={值}
小于等于:/api/{TableName}?{列名}.le={值}
小于:/api/{TableName}?{列名}.lt={值}
IN: /api/{TableName}?{列名}.in={值}
LIKE: /api/{TableName}?{列名}.like={值}
POST
用于新增数据,访问路径后面跟的参数无效
PUT
用于更新数据,可按查询条件进行批量更新。查询条件支持GET中的特殊运算,比如大于等于、小于等于、大于、小于、IN、LIKE查询
DELETE
用于删除数据,可按查询条件进行批量删除。查询条件支持GET中的特殊运算,比如大于等于、小于等于、大于、小于、IN、LIKE查询
基于querybuilder的可根据现有数据表自动生成Restful API的dotnet中间件的更多相关文章
- Go语言根据数据表自动生成model以及controller代码
手写model的用法请参考: https://www.jianshu.com/p/f5784b8c00d0 这里仅说明自动生成model文件的过程 bee generate appcode -tabl ...
- MyBatis 逆向工程——根据数据表自动生成model、xml映射文件、mapper接口
MyBatis Generator(MBG)的使用 MBG可以根据数据表生成对应的model.xml映射文件.mapper接口,只是简单的生成,还需要根据需求修改. 1.下载jar包 https:// ...
- 数据表自动生成java代码
MyBatis生成代码需要用到mybatis-generator-core-1.3.2.jar.数据库连接驱动包和一个xml文件,xml文件一般命令为:generator.xml. Xml内容格式如下 ...
- 根据数据表自动生成javaBean
package fanshe; import java.io.File; import java.io.FileWriter; import java.io.IOException; import j ...
- mybits根据表自动生成 java类和mapper 文件
mybits根据表自动生成 java类和mapper 文件 我这个脑子啊,每次创建新的工程都会忘记是怎么集成mybits怎么生成mapper文件的,so today , I can't write t ...
- Idea根据表自动生成实体
Idea根据表自动生成实体: 首先说下这种方式有个缺点,就是如果表里面有日期.时间类型,那么需要手动的设置映射类型 第一步:在Idea中配置好数据库: 在Idea窗口右边,点击Database按钮 配 ...
- mybatis 逆向工程(通过数据库表针对单表自动生成mybatis执行所需要的代码)
mybatis需要程序员自己编写sql语句,mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行所需要的代码(mapper.java.mapper.xml.pojo…),可以让程序员 ...
- mysql数据表自动导为python sqlalchemy可操作对象
1.pip install sqlacodegen pip install pymysql 在/usr/lib/python/site-packages/sqlacodegen/main.py中添 ...
- 基于Dapper的开源LINQ扩展,且支持分库分表自动生成实体二
LnskyDB LnskyDB是基于Dapper的Lambda扩展,支持按时间分库分表,也可以自定义分库分表方法.而且可以T4生成实体类免去手写实体类的烦恼. 文档地址: https://lining ...
随机推荐
- springboot @value无法赋值
1解决方式在类上在加@Compent @Component@EnableBinding(Sink.class)public class ReceiveMessageListenerController ...
- SQL查询数据库名、表名、列名
1.获取所有用户名SELECT name FROM Sysusers where status='2' and islogin='1'islogin='1'表示帐户islogin='0'表示角色sta ...
- vue-父子组件之传值和单项数据流问题
前言 我们知道 vue 中父子组件的核心概念是单项数据流问题,props 是单项传递的.那究竟什么是单项数据流问题,这篇文章来总结一下关于这个知识点的学习笔记. 正文 1.父组件传值给子组件 < ...
- leaflet加载离线OSM(OpenStreetMap)
本文为博主原创,如需转载需要署名出处. leaflet作为广为应用的开源地图操作的API,是非常受欢迎,轻量级的代码让使用者更容易操作. 废话不多说,下面直接给出范例. 首先在这个网站下载leafle ...
- 单片机学习(十一)I2C总线和AT24C02的使用
一. 存储器介绍 存储器分类图 1. RAM 这类存储器中的数据都是掉电即失的,例如计算机中的内存就是DRAM,但它们数据读写速度都是要比ROM要快得多的. SRAM:本质是电路,使用电路构成的触发器 ...
- C# Equals方法和==有什么区别
开发工具:VS2019 一.关于这两个比较,需要从值类型和引用类型两方面来说 (A)先说值类型 上图: 因为在对值类型进行比较时候,不管 .Equals() 方法还是 == 方法,都是对值类型变量(图 ...
- K8S_第一课作业_20200407
(1)通过cgroup来限制memory ##消耗内存脚本 /tmp/xmem.sh #!/bin/bash mkdir /tmp/memory mount -t tmpfs -o size=2048 ...
- 完蛋,公司被一条 update 语句干趴了!
大家好,我是小林. 昨晚在群划水的时候,看到有位读者说了这么一件事. 在这里插入图片描述 大概就是,在线上执行一条 update 语句修改数据库数据的时候,where 条件没有带上索引,导致业务直接崩 ...
- C# 反射 + Quartz,实现流程处理
场景: 前不久,公司里项目经理要求我实现流程处理,比如,用户可以定义一个定时任务,每周一查看报表.定时任务很简单,用Quartz可以实现,但是用户自己选择报表就比较麻烦,因为系统的不同模块的生成报表的 ...
- Maven专题3——生命周期与插件
三套生命周期 Maven有3套相互独立的生命周期,用户可以调用某个生命周期的阶段,而不会对其他生命周期产生影响. 每个生命周期包含一些有先后顺序的阶段,后面的阶段依赖于前面的阶段,意味着用户调用后面的 ...