php-crud-api icon indicating copy to clipboard operation
php-crud-api copied to clipboard

swagger docker-compose instant openapi

Open nik2208 opened this issue 2 years ago • 15 comments

working on a project I prepared a docker-compose file to put up mysql, php, and swagger to work straight away on the php-crud-api endpoint.

this is what I ended up with: docker-compose.yml

version: "3.9"
services:
  swagger:
    container_name: php-crud-api-swagger
    image: swaggerapi/swagger-ui
    restart: always
    environment:
      SWAGGER_JSON_URL: <url_to_php_crud_api_endpoint>
      DOC_EXPANSION: none # optionally set to list, or full

I've also have a repo available involving mysql, nginx, php-fpm and swagger to be up and running in seconds

nik2208 avatar Oct 06 '23 09:10 nik2208

I've also have a repo available involving mysql, nginx, php-fpm and swagger to be up and running in seconds

Sounds great! Can you share a link with the community?

Is this a proposal to improve the docker-compose.yml?

mevdschee avatar Oct 09 '23 11:10 mevdschee

talking abt swagger it can be considered an improvement, regarding the composition itself, it is actually an alternative, it uses nginx instead of apache and php-fpm (not exposed). I have it in my gitlab, it includes cd-ci scripts with .env variables. how can we share/integrate it in here?

nik2208 avatar Oct 09 '23 12:10 nik2208

how can we share/integrate it in here?

You could do a pr for an alternative (extended) docker-compose.yml, would that make sense?

Kind regards, Maurits

mevdschee avatar Oct 09 '23 12:10 mevdschee

can it be bundled in a sub folder?

nik2208 avatar Oct 09 '23 12:10 nik2208

I'm also fine with a separate project and I'll link to it from the README (that way you can receive credits/questions/suggestions), whatever you prefer.

mevdschee avatar Oct 09 '23 13:10 mevdschee

first commit.. working on it

https://github.com/nik2208/php-crud-api-quick-start

nik2208 avatar Oct 10 '23 07:10 nik2208

I use envsubst to customise api.php configuration function. So the api.php version is static and won't be updated. a release-updated api.php.template file

$config = new Config([
        'driver' => 'mysql',
        'address' => 'mysql.php-api-network',
        'port' => '3306',
        'username' => '$MYSQL_USER',
        'password' => '$MYSQL_PASSWORD',
        'database' => '$MYSQL_DATABASE',
        'debug' => '$PHP_CRUD_API_DEBUG',
        'middlewares' => 'cors,json'
    ]);

would make it possible to download and publish the latest api.php version upon each deploy. any other solution would be appreciated 😅

PS: I've added phpmyadmin image as well

nik2208 avatar Oct 10 '23 08:10 nik2208

any other solution would be appreciated 😅

Can you use environment variables? They are supported, see: https://github.com/mevdschee/php-crud-api#configuration

mevdschee avatar Oct 11 '23 17:10 mevdschee

PS: I've added phpmyadmin image as well

I prefer adminer, see: https://www.adminer.org/

mevdschee avatar Oct 11 '23 17:10 mevdschee

I added a link to the readme, see: https://github.com/mevdschee/php-crud-api/commit/a0c5de051aa8a3e33ec07fff9297461c659cfd58

mevdschee avatar Oct 11 '23 17:10 mevdschee

Can you use environment variables? They are supported, see: https://github.com/mevdschee/php-crud-api#configuration

I didn't realise I could use them on docker as well

I prefer adminer, see: https://www.adminer.org/

ok I'll put it up

nik2208 avatar Oct 12 '23 08:10 nik2208

ok I'll put it up

That's not what I meant.. I'm okay with PHPMyAdmin. Feel free to use either, I'm just sharing my (personal) preference. I wondered if you ever heard about it and you should try it.. it is great :-)

mevdschee avatar Oct 12 '23 10:10 mevdschee

Yes of course no worries I completely trust u and ur opinions.. I'll give both the options.

Can you use environment variables? They are supported, see: https://github.com/mevdschee/php-crud-api#configuration

I've implemented it, if u ever have time, can u give it a spin? following the provided instructions it seems to simply work, just wondering if I'm doing something I give for grant that is not straightforward for others

nik2208 avatar Oct 12 '23 10:10 nik2208

ok two versions available, default featuring adminer, a branch named phpmyadmin featuring phpmyadmin

nik2208 avatar Oct 12 '23 12:10 nik2208

I've implemented it, if u ever have time, can u give it a spin?

I did and I ran into an issue, see: https://github.com/nik2208/php-crud-api-quick-start/issues/3

I also proposed a minor fix in the readme: https://github.com/nik2208/php-crud-api-quick-start/pull/2

I hope you like that :-)

mevdschee avatar Oct 12 '23 17:10 mevdschee