Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

2rebi/mysql_udf_http_golang

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

18 Commits

Repository files navigation

mysql_udf_http_golang

MySQL UDF MariaDB UDF

MySQL or MariaDB UDF(User-Defined Functions) HTTP Client Plugin

Setup

  • Clone Source
git clone https://github.com/2rebi/mysql_udf_http_golang.git udf
cd udf
  • Auto Build
bash ./install.sh {username} {password}

{username} replace your MySQL or MariaDB Username.
{password} replace your MySQL or MariaDB Password(Optional).

  • Manual Build
bash ./build.sh

Build output is http.so, move file to plugin_dir path.
if you don't know plugin_dir path.
Command input this on MySQL, MariaDB connection.

SHOW VARIABLES LIKE 'plugin_dir';

Ex)

$ mysql -u root -p
Enter password: 

And

MariaDB [(none)]> SHOW VARIABLES LIKE 'plugin_dir';
+---------------+-----------------------------------------------+
| Variable_name | Value |
+---------------+-----------------------------------------------+
| plugin_dir | /usr/local/Cellar/mariadb/10.3.12/lib/plugin/ |
+---------------+-----------------------------------------------+
1 row in set (0.001 sec)

and http.so move to Value path.

mv ./http.so /usr/local/Cellar/mariadb/10.3.12/lib/plugin/

Finally, execute query

  • Http Help
CREATE FUNCTION http_help RETURNS STRING SONAME 'http.so';
  • Http Get Method
CREATE FUNCTION http_get RETURNS STRING SONAME 'http.so';
  • Http Post Method
CREATE FUNCTION http_post RETURNS STRING SONAME 'http.so';

Usage

- Help

SELECT http_help();

- GET Method

  • Prototype
SELECT http_get(url, options...);
  • Simple Request
SELECT http_get('http://example.com');

Return

{
 "Body" : String(HTML(Default), Base64, Hexdecimal)
}
  • Output Option
SELECT http_get('http://example.com', '-O FULL');

Return

{
 "Proto" : String(Http Version, HTTP/1.0, HTTP/1.1, HTTP/2.0),
 "Status" : String(Status Code, 200 OK, 404 NOT FOUND...),
 "Header" : JSON(`{Key : Array, ...}`),
 "Body" : String(HTML(Default), Base64, Hexdecimal)
}

-O {outputType} Define kind of result.
PROTO, STATUS or STATUS_CODE, HEADER, BODY(default), FULL
-O PROTO|STATUS|HEADER|BODY same this -O FULL.

  • Custom Header
SELECT http_get('http://example.com', '-O FULL', '-H CustomKey:CustomValue', '-H Authorization:Bearer a1b2c3d4-123e-5678-9fgh-ijk098765432')

Like this

GET / HTTP/1.1
Host: example.com
CustomKey: CustomValue
Authorization: Bearer a1b2c3d4-123e-5678-9fgh-ijk098765432
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip

Option param input -H {key}:{value}.

- POST Method

  • Prototype
SELECT http_post(url, contentType, body, options...)
  • Simple Request(No Body)
SELECT http_post('http://example.com', '', '');
  • Simple Request(Json Body)
SELECT http_post('http://example.com', 'application/json', '{"Hello":"World"}');

Like this

POST / HTTP/1.1
Host: example.com
Content-Type: application/json
Content-Length: 17
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip
{"Hello":"World"}

- Raw Method

  • Prototype
SELECT http_raw(method, url, body, options...)
  • PUT
SELECT http_raw('PUT', url, body, options...)
  • PATCH
SELECT http_raw('PATCH', url, body, options...)
  • DELETE
SELECT http_raw('DELETE', url, body, options...)

License

THE BEER-WARE LICENSE (Revision 42)

About

MySQL(or MariaDB) UDF(User-Defined Functions) Http Client Plugin.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /