Bugzilla – Attachment 56190 Details for
Bug 17428
REST API: CRUD endpoint for cities
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 17428: [REST] Cities swagger specification
Bug-17428-REST-Cities-swagger-specification.patch (text/plain), 9.15 KB, created by
Tomás Cohen Arazi (tcohen)
on 2016-10-11 13:45:28 UTC
(
hide
)
Description:
Bug 17428: [REST] Cities swagger specification
Filename:
MIME Type:
Creator:
Tomás Cohen Arazi (tcohen)
Created:
2016-10-11 13:45:28 UTC
Size:
9.15 KB
patch
obsolete
>From 332acbd4e4c8342c1955363d313cbbe599813791 Mon Sep 17 00:00:00 2001 >From: Tomas Cohen Arazi <tomascohen@theke.io> >Date: Tue, 11 Oct 2016 13:25:14 +0200 >Subject: [PATCH] Bug 17428: [REST] Cities swagger specification > >This patch adds the swagger definitions for the /cities endpoint >--- > api/v1/swagger/definitions.json | 3 + > api/v1/swagger/definitions/city.json | 24 ++++ > api/v1/swagger/parameters.json | 3 + > api/v1/swagger/parameters/city.json | 9 ++ > api/v1/swagger/paths.json | 6 + > api/v1/swagger/paths/cities.json | 217 +++++++++++++++++++++++++++++++++++ > api/v1/swagger/x-primitives.json | 4 + > 7 files changed, 266 insertions(+) > create mode 100644 api/v1/swagger/definitions/city.json > create mode 100644 api/v1/swagger/parameters/city.json > create mode 100644 api/v1/swagger/paths/cities.json > >diff --git a/api/v1/swagger/definitions.json b/api/v1/swagger/definitions.json >index e4d7427..d27167b 100644 >--- a/api/v1/swagger/definitions.json >+++ b/api/v1/swagger/definitions.json >@@ -1,4 +1,7 @@ > { >+ "city": { >+ "$ref": "definitions/city.json" >+ }, > "patron": { > "$ref": "definitions/patron.json" > }, >diff --git a/api/v1/swagger/definitions/city.json b/api/v1/swagger/definitions/city.json >new file mode 100644 >index 0000000..a1d7d40 >--- /dev/null >+++ b/api/v1/swagger/definitions/city.json >@@ -0,0 +1,24 @@ >+{ >+ "type": "object", >+ "properties": { >+ "cityid": { >+ "$ref": "../x-primitives.json#/cityid" >+ }, >+ "city_name": { >+ "description": "city name", >+ "type": "string" >+ }, >+ "city_state": { >+ "description": "city state", >+ "type": ["string", "null"] >+ }, >+ "city_zipcode": { >+ "description": "city zipcode", >+ "type": ["string", "null"] >+ }, >+ "city_country": { >+ "description": "city country", >+ "type": ["string", "null"] >+ } >+ } >+} >diff --git a/api/v1/swagger/parameters.json b/api/v1/swagger/parameters.json >index b20e19f..eeb156a 100644 >--- a/api/v1/swagger/parameters.json >+++ b/api/v1/swagger/parameters.json >@@ -5,6 +5,9 @@ > "borrowernumberQueryParam": { > "$ref": "parameters/patron.json#/borrowernumberQueryParam" > }, >+ "cityidPathParam": { >+ "$ref": "parameters/city.json#/cityidPathParam" >+ }, > "holdIdPathParam": { > "$ref": "parameters/hold.json#/holdIdPathParam" > } >diff --git a/api/v1/swagger/parameters/city.json b/api/v1/swagger/parameters/city.json >new file mode 100644 >index 0000000..c35df74 >--- /dev/null >+++ b/api/v1/swagger/parameters/city.json >@@ -0,0 +1,9 @@ >+{ >+ "cityidPathParam": { >+ "name": "cityid", >+ "in": "path", >+ "description": "City id", >+ "required": true, >+ "type": "integer" >+ } >+} >diff --git a/api/v1/swagger/paths.json b/api/v1/swagger/paths.json >index f00b1b4..b1fcf40 100644 >--- a/api/v1/swagger/paths.json >+++ b/api/v1/swagger/paths.json >@@ -1,4 +1,10 @@ > { >+ "/cities": { >+ "$ref": "paths/cities.json#/~1cities" >+ }, >+ "/cities/{cityid}": { >+ "$ref": "paths/cities.json#/~1cities~1{cityid}" >+ }, > "/holds": { > "$ref": "paths/holds.json#/~1holds" > }, >diff --git a/api/v1/swagger/paths/cities.json b/api/v1/swagger/paths/cities.json >new file mode 100644 >index 0000000..9727bcd >--- /dev/null >+++ b/api/v1/swagger/paths/cities.json >@@ -0,0 +1,217 @@ >+{ >+ "/cities": { >+ "get": { >+ "x-mojo-controller": "Koha::REST::V1::Cities", >+ "operationId": "list", >+ "tags": ["cities"], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A list of cities", >+ "schema": { >+ "type": "array", >+ "items": { >+ "$ref": "../definitions.json#/city" >+ } >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "../definitions.json#/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "../definitions.json#/error" >+ } >+ } >+ } >+ }, >+ "post": { >+ "x-mojo-controller": "Koha::REST::V1::Cities", >+ "operationId": "add", >+ "tags": ["cities"], >+ "parameters": [{ >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing informations about the new hold", >+ "required": true, >+ "schema": { >+ "$ref": "../definitions.json#/city" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "City added", >+ "schema": { >+ "$ref": "../definitions.json#/city" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "../definitions.json#/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "../definitions.json#/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "parameters_remaining_permissions" >+ } >+ } >+ } >+ }, >+ "/cities/{cityid}": { >+ "get": { >+ "x-mojo-controller": "Koha::REST::V1::Cities", >+ "operationId": "get", >+ "tags": ["cities"], >+ "parameters": [ >+ { >+ "$ref": "../parameters.json#/cityidPathParam" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A city", >+ "schema": { >+ "$ref": "../definitions.json#/city" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "../definitions.json#/error" >+ } >+ }, >+ "404": { >+ "description": "City not found", >+ "schema": { >+ "$ref": "../definitions.json#/error" >+ } >+ } >+ , >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "../definitions.json#/error" >+ } >+ } >+ } >+ }, >+ "put": { >+ "x-mojo-controller": "Koha::REST::V1::Cities", >+ "operationId": "update", >+ "tags": ["cities"], >+ "parameters": [ >+ { >+ "$ref": "../parameters.json#/cityidPathParam" >+ }, >+ { >+ "name": "body", >+ "in": "body", >+ "description": "A JSON object containing informations about the new hold", >+ "required": true, >+ "schema": { >+ "$ref": "../definitions.json#/city" >+ } >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "A city", >+ "schema": { >+ "$ref": "../definitions.json#/city" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "../definitions.json#/error" >+ } >+ }, >+ "404": { >+ "description": "City not found", >+ "schema": { >+ "$ref": "../definitions.json#/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "../definitions.json#/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "parameters_remaining_permissions" >+ } >+ } >+ }, >+ "delete": { >+ "x-mojo-controller": "Koha::REST::V1::Cities", >+ "operationId": "delete", >+ "tags": ["cities"], >+ "parameters": [ >+ { >+ "$ref": "../parameters.json#/cityidPathParam" >+ } >+ ], >+ "produces": [ >+ "application/json" >+ ], >+ "responses": { >+ "200": { >+ "description": "City deleted", >+ "schema": { >+ "type": "string" >+ } >+ }, >+ "403": { >+ "description": "Access forbidden", >+ "schema": { >+ "$ref": "../definitions.json#/error" >+ } >+ }, >+ "404": { >+ "description": "City not found", >+ "schema": { >+ "$ref": "../definitions.json#/error" >+ } >+ }, >+ "500": { >+ "description": "Internal error", >+ "schema": { >+ "$ref": "../definitions.json#/error" >+ } >+ } >+ }, >+ "x-koha-authorization": { >+ "permissions": { >+ "parameters": "parameters_remaining_permissions" >+ } >+ } >+ } >+ } >+} >diff --git a/api/v1/swagger/x-primitives.json b/api/v1/swagger/x-primitives.json >index ae8750e..f5ff2e9 100644 >--- a/api/v1/swagger/x-primitives.json >+++ b/api/v1/swagger/x-primitives.json >@@ -15,6 +15,10 @@ > "type": ["string", "null"], > "description": "library assigned user identifier" > }, >+ "cityid": { >+ "type": "string", >+ "description": "internally assigned city identifier" >+ }, > "email": { > "type": ["string", "null"], > "description": "primary email address for patron's primary address" >-- >2.10.1
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 17428
:
56189
|
56190
|
56191
|
56226
|
56227
|
56228
|
56261
|
56314
|
56501
|
56544
|
56545
|
56548
|
56553
|
56554
|
56555
|
56556
|
56557
|
56558
|
56559
|
56724
|
56741
|
56800
|
56801
|
56802
|
56803
|
56804
|
56807
|
56808
|
56809
|
56810
|
56811
|
56812