TT#31504 restructure OpenAPI tags

now there is a tag per API rail instead of per method
this also makes it easy to render the documentation centrally per API rail

Change-Id: I683048f742c2bd2da591e502bc2d8f63cc422627
changes/21/18921/2
Gerhard Jungwirth 8 years ago
parent feee8da1a5
commit 196ddd76cb

@ -80,6 +80,7 @@ sub get_collections_files {
sub generate_swagger_datastructure {
my ($collections, $user_role) = @_;
my @tag_descriptions;
my %paths;
my %schemas;
my %responses = (
@ -149,10 +150,15 @@ sub generate_swagger_datastructure {
my $title = $col->{name};
my $entity = $col->{entity_name};
push @tag_descriptions, {
name => "$entity",
description => $col->{description},
};
if (grep {m/^GET$/} @{ $col->{actions} }) {
$p->{get} = {
summary => "Get $entity items",
tags => ['Collection Get'],
tags => ["$entity"],
responses => {
"200" => {
description => "$title",
@ -209,7 +215,7 @@ sub generate_swagger_datastructure {
$p->{post} = {
# description => "Creates a new item of $title",
summary => "Create a new $entity",
tags => ['Collection Post'],
tags => ["$entity"],
requestBody => {
required => JSON::true,
content => {
@ -253,7 +259,7 @@ sub generate_swagger_datastructure {
if (grep {m/^GET$/} @{ $col->{item_actions} }) {
$item_p->{get} = {
summary => "Get a specific $entity",
tags => ['Item Get'],
tags => ["$entity"],
responses => {
"200" => {
description => "$title",
@ -272,7 +278,7 @@ sub generate_swagger_datastructure {
if (grep {m/^PUT$/} @{ $col->{item_actions} }) {
$item_p->{put} = {
summary => "Replace/change a specific $entity",
tags => ['Item Put'],
tags => ["$entity"],
requestBody => {
required => JSON::true,
content => {
@ -305,7 +311,7 @@ sub generate_swagger_datastructure {
if (grep {m/^PATCH$/} @{ $col->{item_actions} }) {
$item_p->{patch} = {
summary => "Change a specific $entity",
tags => ['Item Patch'],
tags => ["$entity"],
requestBody => {
'$ref' => '#/components/requestBodies/PatchBody',
},
@ -331,7 +337,7 @@ sub generate_swagger_datastructure {
if (grep {m/^DELETE$/} @{ $col->{item_actions} }) {
$item_p->{delete} = {
summary => "Delete a specific $entity",
tags => ['Item Delete'],
tags => ["$entity"],
responses => {
"204" => {
description => "Deletion successful",
@ -341,9 +347,6 @@ sub generate_swagger_datastructure {
};
}
# common description for all methods
$p->{description} = $col->{description};
#push @paths, $p;
$paths{'/'.$chapter.'/'} = $p;
if (keys %{ $item_p }) {
@ -421,6 +424,7 @@ sub generate_swagger_datastructure {
"servers" => [ { "url" => "/api" } ],
"paths" => \%paths,
"tags" => \@tag_descriptions,
"components" => {
"schemas" => \%schemas,
"responses" => \%responses,

Loading…
Cancel
Save