Jon Jensen bd070308d9
[Java][*] Annotate deprecated operations and schemas (#9478)
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
2021-07-19 10:27:03 +08:00
..

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

MySQL documentation

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

  1. Choose Import tab from the home screen
  2. In section File to import click to Choose File and find generated mysql_schema.sql
  3. Make sure Format selector set to SQL
  4. Push Go button

Adminer

  1. Click Import link in left sidebar
  2. In File upload fieldset click to Choose Files and find generated mysql_schema.sql
  3. 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.