AutoApi

基于SqlKata Query Builder的可根据数据表自动生成Restful API的dotnet中间件

项目地址

Github

Gitee

支持的数据库

  1. MySql AutoApi.MySql
  2. SqlServer AutoApi.SqlServer
  3. PostgreSQL AutoApi.PostgreSQL
  4. Oracle AutoApi.Oracle
  5. Sqlite AutoApi.Sqlite
  6. Firebird AutoApi.Firebird

示例

AutoApi.Demo

用法

  1. 安装nuget包 AutoApi.Core

    Install-Package AutoApi.Core -Version 1.0.3

    or

    dotnet add package AutoApi.Core --version 1.0.3

  2. 安装数据库对应类型的nuget包,比SQL Server安装 AutoApi.SqlServer

    Install-Package AutoApi.SqlServer -Version 1.0.0

    or

    dotnet add package AutoApi.SqlServer --version 1.0.0

  3. 在文件Startup.cs中的ConfigureServices方法中添加如下代码:

    services.AddAutoRestfulApi()
    .UseSqlServer(connectionString);//Your sql server database connection string
  4. 在文件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中间件的更多相关文章

  1. Go语言根据数据表自动生成model以及controller代码

    手写model的用法请参考: https://www.jianshu.com/p/f5784b8c00d0 这里仅说明自动生成model文件的过程 bee generate appcode -tabl ...

  2. MyBatis 逆向工程——根据数据表自动生成model、xml映射文件、mapper接口

    MyBatis Generator(MBG)的使用 MBG可以根据数据表生成对应的model.xml映射文件.mapper接口,只是简单的生成,还需要根据需求修改. 1.下载jar包 https:// ...

  3. 数据表自动生成java代码

    MyBatis生成代码需要用到mybatis-generator-core-1.3.2.jar.数据库连接驱动包和一个xml文件,xml文件一般命令为:generator.xml. Xml内容格式如下 ...

  4. 根据数据表自动生成javaBean

    package fanshe; import java.io.File; import java.io.FileWriter; import java.io.IOException; import j ...

  5. mybits根据表自动生成 java类和mapper 文件

    mybits根据表自动生成 java类和mapper 文件 我这个脑子啊,每次创建新的工程都会忘记是怎么集成mybits怎么生成mapper文件的,so today , I can't write t ...

  6. Idea根据表自动生成实体

    Idea根据表自动生成实体: 首先说下这种方式有个缺点,就是如果表里面有日期.时间类型,那么需要手动的设置映射类型 第一步:在Idea中配置好数据库: 在Idea窗口右边,点击Database按钮 配 ...

  7. mybatis 逆向工程(通过数据库表针对单表自动生成mybatis执行所需要的代码)

    mybatis需要程序员自己编写sql语句,mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行所需要的代码(mapper.java.mapper.xml.pojo…),可以让程序员 ...

  8. mysql数据表自动导为python sqlalchemy可操作对象

      1.pip install sqlacodegen pip install pymysql 在/usr/lib/python/site-packages/sqlacodegen/main.py中添 ...

  9. 基于Dapper的开源LINQ扩展,且支持分库分表自动生成实体二

    LnskyDB LnskyDB是基于Dapper的Lambda扩展,支持按时间分库分表,也可以自定义分库分表方法.而且可以T4生成实体类免去手写实体类的烦恼. 文档地址: https://lining ...

随机推荐

  1. Go版本管理--go.sum

    目录 1. 简介 2. go.sum文件记录 3. 生成 4.校验 5.校验和数据库 1. 简介 为了确保一致性构建,Go引入了go.mod文件来标记每个依赖包的版本,在构建过程中go命令会下载go. ...

  2. java8时间类API安全问题(赠送新的时间工具类哟)

    LocalDateTime等新出的日期类全是final修饰的类,不能被继承,且对应的日期变量都是final修饰的,也就是不可变类.赋值一次后就不可变,不存在多线程数据问题. simpleDateFor ...

  3. java深度复制

    索要克隆的类必须实现:Serializable,Cloneable接口import java.io.ByteArrayInputStream; import java.io.ByteArrayOutp ...

  4. Java 字符串格式化和工具类使用

    前言 我们在做项目时候经常需要对字符串进行处理,判断,操作,所以我就总结了一下java 字符串一些常用操作,和推荐比较好用我在自用的工具类,毕竟有轮子我们自己就不用重复去写了,提供开发效率,剩下的时间 ...

  5. ubantu与CentOS虚拟机之间搭建GRE隧道

    Author       : Email         : vip_13031075266@163.com Date          : 2020.01.23 Copyright : 未经同意不得 ...

  6. BeanFactory和ApplicationContext对比

    一.BeanFactory和ApplicationContext对比 其中,ApplicationContext容器即时加载,就是一加载配置文件,就会创建对象,且自动装配bean(即写道xml中bea ...

  7. FileWriter文件文件字符输出流写入存储数据

    1.FileWriter文件字符输出流-写入-存储数据 其中,流关闭之后再调用会报IOException; 其中,与文件字符输入流-写出-读取数据 和 字节输出流-写入-存储数据 不同的是,要先flu ...

  8. [第十四篇]——Docker Machine之Spring Cloud直播商城 b2b2c电子商务技术总结

    Docker Machine 简介 Docker Machine 是一种可以让您在虚拟主机上安装 Docker 的工具,并可以使用 docker-machine 命令来管理主机. Docker Mac ...

  9. go语言游戏服务端开发(一)——架构

    五邑隐侠,本名关健昌,12年游戏生涯. 本教程以Go语言为例.   网络游戏程序分为客户端和服务端.客户端负责图形渲染.交互和一些简单校验处理,服务端负责业务逻辑处理.数据存储. 我们开发一个游戏de ...

  10. Android系统编程入门系列之应用数据文件化保存

    应用中关于数据的持久化保存,不管是简单的SharedPreferences还是数据库SQLiteDatabase,本质上都是将数据保存到系统的某种类型的文件中.因此可以直接使用java.io.File ...