Refs #3358 Ensure `deprecated` operations are annotated/documented as such on the generated methods. Libraries updated: * [feign] * [google-api-client] * [microprofile] * [okhttp-gson] * [resttemplate] * [retrofit] * [retrofit/play*] * [webclient] * [vertx] Ensure `deprecated` schemas are annotated/documented as such on the generated classes/fields. Libraries updated: * [feign] * [google-api-client] * [jersey2] * [microprofile] * [native] * [okhttp-gson] * [rest-assured] * [resteasy] * [resttemplate] * [retrofit*] * [webclient] * [vertx] Also fix two minor bugs to get the java sample tests working: * Fix an invalid jackson-datatype-threetenbp version number in vertx/pom.mustache * Fix a bad return type in webclient/api_test.mustache when uniqueItems=true Since this commit updates petstore-with-fake-endpoints-models-for-testing.yaml, several other samples were updated, but it's just new files to reflect the deprecated schemas, so there should be no consequential differences. Relevant bits of the spec: * https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#user-content-operationdeprecated * https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#user-content-schemadeprecated
MySQL Schema Codegen
Main goal of this generator is to provide database structure file almost identical you usually generate with:
- PHPMyAdmin (Export structure only, SQL syntax)
- Adminer
mysqldump
function
Requirements
- MySQL Server ^5.7.8 (
JSON
column type added)
Openapi Data Type to MySQL Data Type mapping
Openapi Data Type | Openapi Data Format | Dependent properties | MySQL Data Types | Default MySQL Data Type |
---|---|---|---|---|
integer |
int32 |
minimum / maximum / minimumExclusive / maximumExclusive |
TINYINT / SMALLINT / MEDIUMINT / INT / BIGINT |
INT |
integer |
int64 |
minimum / maximum / minimumExclusive / maximumExclusive |
TINYINT / SMALLINT / MEDIUMINT / INT / BIGINT |
BIGINT |
boolean |
TINYINT |
TINYINT |
||
number |
float |
DECIMAL |
DECIMAL |
|
number |
double |
DECIMAL |
DECIMAL |
|
string |
minLength / maxLength |
CHAR / VARCHAR / TEXT / MEDIUMTEXT / LONGTEXT |
TEXT |
|
string |
byte |
TEXT |
TEXT |
|
string |
binary |
MEDIUMBLOB |
MEDIUMBLOB |
|
file |
MEDIUMBLOB |
MEDIUMBLOB |
||
string |
date |
DATE |
DATE |
|
string |
date-time |
DATETIME |
DATETIME |
|
string |
enum |
ENUM |
ENUM |
|
array |
JSON |
JSON |
||
object |
JSON |
JSON |
||
\Model\User (referenced definition) |
TEXT |
TEXT |
How to use
Produced file(mysql_schema.sql
) contains every table definition. Current implementation doesn't drop or modify existed tables, if you want rewrite whole schema make sure they're not presented.
PHPMyAdmin
- Choose Import tab from the home screen
- In section File to import click to Choose File and find generated
mysql_schema.sql
- Make sure Format selector set to SQL
- Push Go button
Adminer
- Click Import link in left sidebar
- In File upload fieldset click to Choose Files and find generated
mysql_schema.sql
- Push Execute button
Prepared SQL queries
Model folder contains SQL queries(SELECT *
, SELECT
, INSERT
, UPDATE
, DELETE
) usually suggested by PHPMyAdmin
when you hit SQL
tab. They are absolutely useless without adaptation to your needs. Copypaste them then edit.
Important! Some of SQLs(INSERT
/UPDATE
) contains question marks(?
) which are parameter placeholders. You need to bind values to these params to execute query.
If your MySQL driver doesn't support named parameters(PHP PDO
supports while PHP mysqli
doesn't) you need to make sure that namedParametersEnabled
generator option is disabled.