package
0.0.0-20200205073952-6ddef8173066
Repository: https://github.com/suifengpiao14/crud-mysql.git
Documentation: pkg.go.dev

# README

MySQL Adapter to pRest project https://postgres.rest/

Build Status

  • Not Implemented
  • Implemented

[-] Not Applicable

Select - GET

Select operations over a TABLE

  • /DATABASE/SCHEMA/TABLE (show all rows, find by database and table)
  • /DATABASE/SCHEMA/TABLE?_select=column (select statement by columns)
  • /DATABASE/SCHEMA/TABLE?_select=* (select all from TABLE)
  • /DATABASE/SCHEMA/TABLE?_count=* (use count function)
  • /DATABASE/SCHEMA/TABLE?_count=column (use count function)
  • /DATABASE/SCHEMA/TABLE?_page=2&_page_size=10 (pagination, page_size 10 by default)
  • /DATABASE/SCHEMA/TABLE?FIELD=VALUE (filter)
  • /DATABASE/SCHEMA/TABLE?_renderer=xml (JSON by default)

[-] /DATABASE/SCHEMA/TABLE?_select=column[array id] (select statement by array colum)

Operators

  • $eq
  • $gt
  • $gte
  • $lt
  • $lte
  • $ne
  • $in
  • $nin
  • $null
  • $notnull
  • $true
  • $nottrue
  • $false
  • $notfalse
  • $like
  • $ilike

Join

  • /DATABASE/SCHEMA/Table?_join=Type:Table2:Table.field:Operator:Table2.field

ORDER BY

  • /DATABASE/SCHEMA/TABLE?_order=fieldname (ASC)
  • /DATABASE/SCHEMA/TABLE?_order=-fieldname (DESC)
  • /DATABASE/SCHEMA/TABLE?_order=fieldname01,-fieldname02,fieldname03 (Multiple Orders)

GROUP BY

  • /DATABASE/SCHEMA/TABLE?_select=fieldname00,fieldname01&_groupby=fieldname01
  • /DATABASE/SCHEMA/TABLE/?_select=fieldname00,sum:fieldname01&_groupby=fieldname00 (SUM)
  • /DATABASE/SCHEMA/TABLE/?_select=fieldname00,avg:fieldname01&_groupby=fieldname00 (AVG)
  • /DATABASE/SCHEMA/TABLE/?_select=fieldname00,max:fieldname01&_groupby=fieldname00 (MAX)
  • /DATABASE/SCHEMA/TABLE/?_select=fieldname00,min:fieldname01&_groupby=fieldname00 (MIN)
  • /DATABASE/SCHEMA/TABLE/?_select=fieldname00,stddev:fieldname01&_groupby=fieldname00 (STDDEV)
  • /DATABASE/SCHEMA/TABLE/?_select=fieldname00,variance:fieldname01&_groupby=fieldname00 (VARIANCE)
  • /DATABASE/SCHEMA/TABLE/?_groupby=fieldname->>having:GROUPFUNC:FIELDNAME:CONDITION:VALUE_CONDITION (HAVING)

[-] /DATABASE/SCHEMA/TABLE/?_select=fieldname00,median:fieldname01&_groupby=fieldname00 (MEDIAN)

Select operations over a VIEW

  • /DATABASE/SCHEMA/TABLE (show all rows, find by database and VIEW)
  • /DATABASE/SCHEMA/VIEW?_select=column (select statement by columns in VIEW)
  • /DATABASE/SCHEMA/VIEW?_select=* (select all from VIEW)
  • /DATABASE/SCHEMA/VIEW?_count=* (use count function)
  • /DATABASE/SCHEMA/VIEW?_count=column (use count function)
  • /DATABASE/SCHEMA/VIEW?_page=2&_page_size=10 (pagination, page_size 10 by default)
  • /DATABASE/SCHEMA/VIEW?FIELD=VALUE (filter)
  • /DATABASE/SCHEMA/VIEW?_renderer=xml (JSON by default)

Database structure

  • /databases (show all databases)
  • /databases?_count=* (count all databases)
  • /databases?_renderer=xml (JSON by default)
  • /schemas (show all schemas)
  • /schemas?_count=* (count all schemas)
  • /schemas?_renderer=xml (JSON by default)
  • /tables (show all tables)
  • /tables?_renderer=xml (JSON by default)
  • /DATABASE/SCHEMA (show all tables, find by schema)
  • /DATABASE/SCHEMA?_renderer=xml (JSON by default)

Insert - POST

  • /DATABASE/SCHEMA/TABLE
{
    "FIELD1": "string value",
    "FIELD2": 1234567890
}

Update - PATCH/PUT

  • /DATABASE/SCHEMA/TABLE?FIELD1=xyz
{
    "FIELD1": "string value",
    "FIELD2": 1234567890
}

Delete - DELETE

  • /DATABASE/SCHEMA/TABLE?FIELD1=xyz

# Packages

No description provided by the author
No description provided by the author

# Functions

AddDatabaseToPool add connection to pool.
camel string, xx_yy to xxYy.
ClearStmt used to reset the cache and allow multiple tests.
Get get mysql connection.
GetDatabase get current database in use.
GetPool of connection.
GetQueryOperator identify operator on a join.
GetStmt get statement.
GetURI mysql connection URI.
Load mysql.
MustGet get mysql connection.
NormalizeGroupFunction normalize url params values to sql group functions.
Prepare statement func.
PrepareTx statement func.
SetDatabase set current database in use.
snake string, XxYy to xx_yy , XxYY to xx_yy.
WriteSQL perform INSERT's, UPDATE's, DELETE's operations.

# Variables

ErrBodyEmpty err throw when body is empty.

# Structs

MySQL adapter mysql.
Stmt statement representation.