Completed countries/regions/cities
This commit is contained in:
@@ -319,6 +319,393 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/countries": {
|
||||
"get": {
|
||||
"tags": [
|
||||
"countries"
|
||||
],
|
||||
"summary": "Get all countries",
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"parameters": [
|
||||
{
|
||||
"in": "header",
|
||||
"name": "Authorization",
|
||||
"required": true,
|
||||
"type": "string",
|
||||
"description": "Authorization Token"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK"
|
||||
},
|
||||
"401": {
|
||||
"description": "No token provided"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/countries/{country}": {
|
||||
"get": {
|
||||
"tags": [
|
||||
"countries"
|
||||
],
|
||||
"summary": "Get a single country",
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"parameters": [
|
||||
{
|
||||
"name": "country",
|
||||
"in": "path",
|
||||
"description": "Required Country",
|
||||
"type": "string",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"in": "header",
|
||||
"name": "Authorization",
|
||||
"required": true,
|
||||
"type": "string",
|
||||
"description": "Authorization Token"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK"
|
||||
},
|
||||
"401": {
|
||||
"description": "No token provided"
|
||||
},
|
||||
"404": {
|
||||
"description": "Country not found"
|
||||
}
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"tags": [
|
||||
"countries"
|
||||
],
|
||||
"summary": "Delete a specific country",
|
||||
"description": "",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "country",
|
||||
"in": "path",
|
||||
"description": "Country to delete",
|
||||
"type": "string",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"in": "header",
|
||||
"name": "Authorization",
|
||||
"required": true,
|
||||
"type": "string",
|
||||
"description": "Authorization Token"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"204": {
|
||||
"description": "OK, country was deleted"
|
||||
},
|
||||
"401": {
|
||||
"description": "No token provided"
|
||||
},
|
||||
"404": {
|
||||
"description": "Country does not exist"
|
||||
},
|
||||
"405": {
|
||||
"description": "Country has regions, cannot be deleted"
|
||||
}
|
||||
}
|
||||
},
|
||||
"put": {
|
||||
"tags": [
|
||||
"countries"
|
||||
],
|
||||
"summary": "Update or create a country",
|
||||
"consumes": [
|
||||
"application/x-www-form-urlencoded"
|
||||
],
|
||||
"produces": [
|
||||
"text/plain"
|
||||
],
|
||||
"parameters": [
|
||||
{
|
||||
"name": "country",
|
||||
"in": "path",
|
||||
"description": "Country",
|
||||
"type": "string",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"in": "formData",
|
||||
"name": "name",
|
||||
"required": true,
|
||||
"type": "string",
|
||||
"description": "The region's new name."
|
||||
},
|
||||
{
|
||||
"in": "header",
|
||||
"name": "Authorization",
|
||||
"required": true,
|
||||
"type": "string",
|
||||
"description": "Authorization Token"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"204": {
|
||||
"description": "OK, coutry was updated"
|
||||
},
|
||||
"400": {
|
||||
"description": "Name missing, country not updated"
|
||||
},
|
||||
"401": {
|
||||
"description": "No token provided"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/cities": {
|
||||
"post": {
|
||||
"tags": [
|
||||
"cities"
|
||||
],
|
||||
"summary": "Add a city",
|
||||
"consumes": [
|
||||
"application/x-www-form-urlencoded"
|
||||
],
|
||||
"produces": [
|
||||
"text/plain"
|
||||
],
|
||||
"parameters": [
|
||||
{
|
||||
"in": "formData",
|
||||
"name": "name",
|
||||
"required": true,
|
||||
"type": "string",
|
||||
"description": "The new city's name."
|
||||
},
|
||||
{
|
||||
"in": "formData",
|
||||
"name": "latitude",
|
||||
"required": true,
|
||||
"type": "number",
|
||||
"description": "The new city's latitude."
|
||||
},
|
||||
{
|
||||
"in": "formData",
|
||||
"name": "longitude",
|
||||
"required": true,
|
||||
"type": "number",
|
||||
"description": "The new city's longitude."
|
||||
},
|
||||
{
|
||||
"in": "formData",
|
||||
"name": "population",
|
||||
"required": true,
|
||||
"type": "number",
|
||||
"description": "The new city's population."
|
||||
},
|
||||
{
|
||||
"in": "formData",
|
||||
"name": "countryCode",
|
||||
"required": true,
|
||||
"type": "string",
|
||||
"description": "The new city's country."
|
||||
},
|
||||
{
|
||||
"in": "formData",
|
||||
"name": "regionCode",
|
||||
"required": true,
|
||||
"type": "string",
|
||||
"description": "The new city's region."
|
||||
},
|
||||
{
|
||||
"in": "header",
|
||||
"name": "Authorization",
|
||||
"required": true,
|
||||
"type": "string",
|
||||
"description": "Authorization Token"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"201": {
|
||||
"description": "OK, created"
|
||||
},
|
||||
"400": {
|
||||
"description": "Name missing, city not created"
|
||||
},
|
||||
"401": {
|
||||
"description": "No token provided"
|
||||
},
|
||||
"403": {
|
||||
"description": "Region not found, city not created"
|
||||
},
|
||||
"409": {
|
||||
"description": "Other failure, city not created"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/cities/{cityId}": {
|
||||
"get": {
|
||||
"tags": [
|
||||
"cities"
|
||||
],
|
||||
"summary": "Get a specific city",
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"parameters": [
|
||||
{
|
||||
"name": "cityId",
|
||||
"in": "path",
|
||||
"description": "Id of the city",
|
||||
"type": "number",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"in": "header",
|
||||
"name": "Authorization",
|
||||
"required": true,
|
||||
"type": "string",
|
||||
"description": "Authorization Token"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK"
|
||||
},
|
||||
"401": {
|
||||
"description": "No token provided"
|
||||
},
|
||||
"404": {
|
||||
"description": "City not found"
|
||||
}
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"tags": [
|
||||
"cities"
|
||||
],
|
||||
"summary": "Delete a specific city",
|
||||
"description": "",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "cityId",
|
||||
"in": "path",
|
||||
"description": "Id of the city",
|
||||
"type": "number",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"in": "header",
|
||||
"name": "Authorization",
|
||||
"required": true,
|
||||
"type": "string",
|
||||
"description": "Authorization Token"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"204": {
|
||||
"description": "OK, city was deleted"
|
||||
},
|
||||
"401": {
|
||||
"description": "No token provided"
|
||||
},
|
||||
"404": {
|
||||
"description": "City does not exist"
|
||||
}
|
||||
}
|
||||
},
|
||||
"put": {
|
||||
"tags": [
|
||||
"cities"
|
||||
],
|
||||
"summary": "Update a specific city",
|
||||
"consumes": [
|
||||
"application/x-www-form-urlencoded"
|
||||
],
|
||||
"produces": [
|
||||
"text/plain"
|
||||
],
|
||||
"parameters": [
|
||||
{
|
||||
"name": "cityId",
|
||||
"in": "path",
|
||||
"description": "Id of the city",
|
||||
"type": "number",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"in": "formData",
|
||||
"name": "name",
|
||||
"required": true,
|
||||
"type": "string",
|
||||
"description": "The new city's name."
|
||||
},
|
||||
{
|
||||
"in": "formData",
|
||||
"name": "latitude",
|
||||
"required": true,
|
||||
"type": "number",
|
||||
"description": "The new city's latitude."
|
||||
},
|
||||
{
|
||||
"in": "formData",
|
||||
"name": "longitude",
|
||||
"required": true,
|
||||
"type": "number",
|
||||
"description": "The new city's longitude."
|
||||
},
|
||||
{
|
||||
"in": "formData",
|
||||
"name": "population",
|
||||
"required": true,
|
||||
"type": "number",
|
||||
"description": "The new city's population."
|
||||
},
|
||||
{
|
||||
"in": "formData",
|
||||
"name": "countryCode",
|
||||
"required": true,
|
||||
"type": "string",
|
||||
"description": "The new city's country."
|
||||
},
|
||||
{
|
||||
"in": "formData",
|
||||
"name": "regionCode",
|
||||
"required": true,
|
||||
"type": "string",
|
||||
"description": "The new city's region."
|
||||
},
|
||||
{
|
||||
"in": "header",
|
||||
"name": "Authorization",
|
||||
"required": true,
|
||||
"type": "string",
|
||||
"description": "Authorization Token"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"204": {
|
||||
"description": "OK, city was updated"
|
||||
},
|
||||
"400": {
|
||||
"description": "Name missing, city not updated"
|
||||
},
|
||||
"401": {
|
||||
"description": "No token provided"
|
||||
},
|
||||
"404": {
|
||||
"description": "City not found"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,212 +0,0 @@
|
||||
openapi: "3.0.0"
|
||||
info:
|
||||
title: World Data RESTful API
|
||||
description: "This is a RESTful API to access world data, including countries, regions, and cities."
|
||||
version: "0.0.1"
|
||||
servers:
|
||||
- url: http://127.0.0.1:8443
|
||||
|
||||
tags:
|
||||
- name: "token"
|
||||
description: "Get a JWT for authorization"
|
||||
- name: "countries"
|
||||
description: "Access the world countries"
|
||||
- name: "regions"
|
||||
description: "Access the regions of countries"
|
||||
- name: "cities"
|
||||
description: "Access the world cities"
|
||||
|
||||
paths:
|
||||
/gettoken:
|
||||
post:
|
||||
tags:
|
||||
- "token"
|
||||
summary: "Get a token to authorize future requests"
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/x-www-form-urlencoded:
|
||||
schema:
|
||||
type: object
|
||||
properties:
|
||||
user:
|
||||
type: string
|
||||
password:
|
||||
type: string
|
||||
required:
|
||||
- user
|
||||
- password
|
||||
responses:
|
||||
200:
|
||||
description: A valid token to use for other requests
|
||||
401:
|
||||
description: "No token provided"
|
||||
404:
|
||||
description: "Country not found"
|
||||
|
||||
/regions:
|
||||
get:
|
||||
tags:
|
||||
- "regions"
|
||||
summary: "Get all regions of all countries"
|
||||
produces:
|
||||
- application/json
|
||||
responses:
|
||||
200:
|
||||
description: "OK"
|
||||
401:
|
||||
description: "No token provided"
|
||||
|
||||
post:
|
||||
tags:
|
||||
- "regions"
|
||||
summary: "Add a region to a given country"
|
||||
consumes:
|
||||
- "application/x-www-form-urlencoded"
|
||||
produces:
|
||||
- text/plain
|
||||
parameters:
|
||||
- in: formData
|
||||
name: name
|
||||
required: true
|
||||
type: string
|
||||
description: The new region's name.
|
||||
- in: header
|
||||
name: "Authorization: Bearer"
|
||||
required: true
|
||||
type: string
|
||||
description: Authorization Token
|
||||
responses:
|
||||
201:
|
||||
description: "OK, created"
|
||||
400:
|
||||
description: "Name missing, region not created"
|
||||
401:
|
||||
description: "No token provided"
|
||||
403:
|
||||
description: "Country not found, region not created"
|
||||
409:
|
||||
description: "Other failure, region not created"
|
||||
|
||||
/regions/{country}:
|
||||
get:
|
||||
tags:
|
||||
- "regions"
|
||||
summary: "Get all regions of a given country"
|
||||
produces:
|
||||
- application/json
|
||||
parameters:
|
||||
- name: country
|
||||
in: path
|
||||
description: "Country (id) whose regions are required"
|
||||
type: string
|
||||
required: true
|
||||
responses:
|
||||
200:
|
||||
description: "OK"
|
||||
401:
|
||||
description: "No token provided"
|
||||
404:
|
||||
description: "Country not found"
|
||||
|
||||
/regions/{country}/{id}:
|
||||
|
||||
get:
|
||||
tags:
|
||||
- "regions"
|
||||
summary: "Get a specific region of a given country"
|
||||
produces:
|
||||
- application/json
|
||||
parameters:
|
||||
- name: country
|
||||
in: path
|
||||
description: "Country (id) of the region"
|
||||
type: string
|
||||
required: true
|
||||
- name: id
|
||||
in: path
|
||||
description: "Region (id) that is required"
|
||||
type: string
|
||||
required: true
|
||||
responses:
|
||||
200:
|
||||
description: "OK"
|
||||
401:
|
||||
description: "No token provided"
|
||||
404:
|
||||
description: "Country not found"
|
||||
|
||||
delete:
|
||||
tags:
|
||||
- "regions"
|
||||
summary: "Delete a specific region of a given country"
|
||||
description: ""
|
||||
parameters:
|
||||
- name: country
|
||||
in: path
|
||||
description: "Country (id) of the region"
|
||||
type: string
|
||||
required: true
|
||||
- name: id
|
||||
in: path
|
||||
description: "Region (id) that is to be deleted"
|
||||
type: string
|
||||
required: true
|
||||
responses:
|
||||
204:
|
||||
description: "OK, region was deleted"
|
||||
401:
|
||||
description: "No token provided"
|
||||
404:
|
||||
description: "Region does not exist"
|
||||
405:
|
||||
description: "Region has cities, cannot be deleted"
|
||||
|
||||
put:
|
||||
tags:
|
||||
- "regions"
|
||||
summary: "Update a specific region of a given country"
|
||||
consumes:
|
||||
- "application/x-www-form-urlencoded"
|
||||
produces:
|
||||
- text/plain
|
||||
parameters:
|
||||
- name: country
|
||||
in: path
|
||||
description: "Country (id) of the region"
|
||||
type: string
|
||||
required: true
|
||||
- name: id
|
||||
in: path
|
||||
description: "Region (id) that is to be deleted"
|
||||
type: string
|
||||
required: true
|
||||
- in: formData
|
||||
name: name
|
||||
required: true
|
||||
type: string
|
||||
description: The region's new name.
|
||||
responses:
|
||||
204:
|
||||
description: "OK, region was updated"
|
||||
400:
|
||||
description: "Name missing, region not updated"
|
||||
401:
|
||||
description: "No token provided"
|
||||
404:
|
||||
description: "Country not found"
|
||||
|
||||
|
||||
|
||||
components:
|
||||
securitySchemes:
|
||||
JwtAuth:
|
||||
type: apiKey
|
||||
in: header
|
||||
name: Authorization
|
||||
|
||||
bearerAuth: # arbitrary name for the security scheme
|
||||
type: apiKey
|
||||
in: header
|
||||
scheme: bearer
|
||||
bearerFormat: JWT
|
||||
@@ -221,3 +221,272 @@ paths:
|
||||
description: "No token provided"
|
||||
404:
|
||||
description: "Country not found"
|
||||
|
||||
/countries:
|
||||
get:
|
||||
tags:
|
||||
- "countries"
|
||||
summary: "Get all countries"
|
||||
produces:
|
||||
- application/json
|
||||
parameters:
|
||||
- in: header
|
||||
name: "Authorization"
|
||||
required: true
|
||||
type: string
|
||||
description: Authorization Token
|
||||
responses:
|
||||
200:
|
||||
description: "OK"
|
||||
401:
|
||||
description: "No token provided"
|
||||
|
||||
/countries/{country}:
|
||||
get:
|
||||
tags:
|
||||
- "countries"
|
||||
summary: "Get a single country"
|
||||
produces:
|
||||
- application/json
|
||||
parameters:
|
||||
- name: country
|
||||
in: path
|
||||
description: "Required Country"
|
||||
type: string
|
||||
required: true
|
||||
- in: header
|
||||
name: "Authorization"
|
||||
required: true
|
||||
type: string
|
||||
description: Authorization Token
|
||||
responses:
|
||||
200:
|
||||
description: "OK"
|
||||
401:
|
||||
description: "No token provided"
|
||||
404:
|
||||
description: "Country not found"
|
||||
|
||||
delete:
|
||||
tags:
|
||||
- "countries"
|
||||
summary: "Delete a specific country"
|
||||
description: ""
|
||||
parameters:
|
||||
- name: country
|
||||
in: path
|
||||
description: "Country to delete"
|
||||
type: string
|
||||
required: true
|
||||
- in: header
|
||||
name: "Authorization"
|
||||
required: true
|
||||
type: string
|
||||
description: Authorization Token
|
||||
responses:
|
||||
204:
|
||||
description: "OK, country was deleted"
|
||||
401:
|
||||
description: "No token provided"
|
||||
404:
|
||||
description: "Country does not exist"
|
||||
405:
|
||||
description: "Country has regions, cannot be deleted"
|
||||
|
||||
put:
|
||||
tags:
|
||||
- "countries"
|
||||
summary: "Update or create a country"
|
||||
consumes:
|
||||
- "application/x-www-form-urlencoded"
|
||||
produces:
|
||||
- text/plain
|
||||
parameters:
|
||||
- name: country
|
||||
in: path
|
||||
description: "Country"
|
||||
type: string
|
||||
required: true
|
||||
- in: formData
|
||||
name: name
|
||||
required: true
|
||||
type: string
|
||||
description: The region's new name.
|
||||
- in: header
|
||||
name: "Authorization"
|
||||
required: true
|
||||
type: string
|
||||
description: Authorization Token
|
||||
responses:
|
||||
204:
|
||||
description: "OK, coutry was updated"
|
||||
400:
|
||||
description: "Name missing, country not updated"
|
||||
401:
|
||||
description: "No token provided"
|
||||
|
||||
/cities:
|
||||
post:
|
||||
tags:
|
||||
- "cities"
|
||||
summary: "Add a city"
|
||||
consumes:
|
||||
- "application/x-www-form-urlencoded"
|
||||
produces:
|
||||
- text/plain
|
||||
parameters:
|
||||
- in: formData
|
||||
name: name
|
||||
required: true
|
||||
type: string
|
||||
description: The new city's name.
|
||||
- in: formData
|
||||
name: latitude
|
||||
required: true
|
||||
type: number
|
||||
description: The new city's latitude.
|
||||
- in: formData
|
||||
name: longitude
|
||||
required: true
|
||||
type: number
|
||||
description: The new city's longitude.
|
||||
- in: formData
|
||||
name: population
|
||||
required: true
|
||||
type: number
|
||||
description: The new city's population.
|
||||
- in: formData
|
||||
name: countryCode
|
||||
required: true
|
||||
type: string
|
||||
description: The new city's country.
|
||||
- in: formData
|
||||
name: regionCode
|
||||
required: true
|
||||
type: string
|
||||
description: The new city's region.
|
||||
- in: header
|
||||
name: "Authorization"
|
||||
required: true
|
||||
type: string
|
||||
description: Authorization Token
|
||||
responses:
|
||||
201:
|
||||
description: "OK, created"
|
||||
400:
|
||||
description: "Name missing, city not created"
|
||||
401:
|
||||
description: "No token provided"
|
||||
403:
|
||||
description: "Region not found, city not created"
|
||||
409:
|
||||
description: "Other failure, city not created"
|
||||
|
||||
/cities/{cityId}:
|
||||
get:
|
||||
tags:
|
||||
- "cities"
|
||||
summary: "Get a specific city"
|
||||
produces:
|
||||
- application/json
|
||||
parameters:
|
||||
- name: cityId
|
||||
in: path
|
||||
description: "Id of the city"
|
||||
type: number
|
||||
required: true
|
||||
- in: header
|
||||
name: "Authorization"
|
||||
required: true
|
||||
type: string
|
||||
description: Authorization Token
|
||||
responses:
|
||||
200:
|
||||
description: "OK"
|
||||
401:
|
||||
description: "No token provided"
|
||||
404:
|
||||
description: "City not found"
|
||||
|
||||
delete:
|
||||
tags:
|
||||
- "cities"
|
||||
summary: "Delete a specific city"
|
||||
description: ""
|
||||
parameters:
|
||||
- name: cityId
|
||||
in: path
|
||||
description: "Id of the city"
|
||||
type: number
|
||||
required: true
|
||||
- in: header
|
||||
name: "Authorization"
|
||||
required: true
|
||||
type: string
|
||||
description: Authorization Token
|
||||
responses:
|
||||
204:
|
||||
description: "OK, city was deleted"
|
||||
401:
|
||||
description: "No token provided"
|
||||
404:
|
||||
description: "City does not exist"
|
||||
|
||||
put:
|
||||
tags:
|
||||
- "cities"
|
||||
summary: "Update a specific city"
|
||||
consumes:
|
||||
- "application/x-www-form-urlencoded"
|
||||
produces:
|
||||
- text/plain
|
||||
parameters:
|
||||
- name: cityId
|
||||
in: path
|
||||
description: "Id of the city"
|
||||
type: number
|
||||
required: true
|
||||
- in: formData
|
||||
name: name
|
||||
required: true
|
||||
type: string
|
||||
description: The new city's name.
|
||||
- in: formData
|
||||
name: latitude
|
||||
required: true
|
||||
type: number
|
||||
description: The new city's latitude.
|
||||
- in: formData
|
||||
name: longitude
|
||||
required: true
|
||||
type: number
|
||||
description: The new city's longitude.
|
||||
- in: formData
|
||||
name: population
|
||||
required: true
|
||||
type: number
|
||||
description: The new city's population.
|
||||
- in: formData
|
||||
name: countryCode
|
||||
required: true
|
||||
type: string
|
||||
description: The new city's country.
|
||||
- in: formData
|
||||
name: regionCode
|
||||
required: true
|
||||
type: string
|
||||
description: The new city's region.
|
||||
- in: header
|
||||
name: "Authorization"
|
||||
required: true
|
||||
type: string
|
||||
description: Authorization Token
|
||||
responses:
|
||||
204:
|
||||
description: "OK, city was updated"
|
||||
400:
|
||||
description: "Name missing, city not updated"
|
||||
401:
|
||||
description: "No token provided"
|
||||
404:
|
||||
description: "City not found"
|
||||
|
||||
Reference in New Issue
Block a user