Merge branch 'feature/v4'

This commit is contained in:
Alejandro Matos
2023-03-10 13:26:55 -05:00
5 changed files with 55 additions and 210 deletions
+25 -208
View File
@@ -2,8 +2,9 @@
This project is inspired on restcountries.eu by Fayder Florez. Although the original project has now moved to
a subscription base API, this project is still Open Source and Free to use.
## Important Information About Version 2
The structure has been reverted to its original form from the [Original Project] to maintain compatibility.
## Important Information
* The structure of V2 has been reverted to its original form from the [Original Project] to maintain compatibility.
* Only the latest version will receive updates and improvements.
# REST Countries
You can access API through https://restcountries.com/v3.1/all
@@ -21,17 +22,6 @@ You can check the [FIELDS.md](FIELDS.md) file to get a description for each fiel
# API Endpoints
Currently there are 3 versions:
- Version 2 is the original version from restcountries.eu by Fayder Florez
- Version 3 is the implementation from [this project](https://github.com/mledoze/countries)
- Version 3.1 adds named values to the `flags` object like this:
```json
"flags": {
"svg": "https://restcountries.com/data/per.svg",
"png": "https://restcountries.com/data/png/per.png"
}
```
## Using this Project
- [Famosos](https://famosos.com)
@@ -40,17 +30,24 @@ Currently there are 3 versions:
- [Asendia](https://tracking.asendia.com)
- [Picker](https://mwb.pickerexpress.com/#/login)
#Endpoints
# Endpoints
Below are described the REST endpoints available that you can use to search for countries
## Latest added enpoint
### Independent
Now you can get all independent (or not independent) countries by calling this endpoint:
``` html
https://restcountries.com/v3.1/independent?status=true
```
If you don't specify the status, true will be taken as default. You can mix it with the `fields` filter like this:
``` html
https://restcountries.com/v3.1/independent?status=true&fields=languages,capital
```
## All
### V2
``` html
https://restcountries.com/v2/all
```
### V3.1
``` html
https://restcountries.com/v3.1/all
```
@@ -58,23 +55,7 @@ https://restcountries.com/v3.1/all
## Name
### V2
Search by country name. It can be the native name or partial name
``` javascript
https://restcountries.com/v2/name/{name}
```
``` html
https://restcountries.com/v2/name/eesti
```
``` html
https://restcountries.com/v2/name/united
```
### V3.1
Search by country name. It can be the common or official value
**Search** by country name. If you want to get an exact match, use the next endpoint. It can be the common or official value
``` html
https://restcountries.com/v3.1/name/{name}
```
@@ -88,18 +69,7 @@ https://restcountries.com/v3.1/name/deutschland
```
## Full Name
### V2
Search by country's full name
``` html
https://restcountries.com/v2/name/{name}?fullText=true
```
``` html
https://restcountries.com/v2/name/aruba?fullText=true
```
### V3.1
Search by country's full name. It can be the common or official value
``` html
https://restcountries.com/v3.1/name/{name}?fullText=true
@@ -109,21 +79,7 @@ https://restcountries.com/v3.1/name/{name}?fullText=true
https://restcountries.com/v3.1/name/aruba?fullText=true
```
## Code
### V2
Search by ISO 3166-1 2-letter or 3-letter country code
``` html
https://restcountries.com/v2/alpha/{code}
```
``` html
https://restcountries.com/v2/alpha/co
```
``` html
https://restcountries.com/v2/alpha/col
```
### V3.1
Search by cca2, ccn3, cca3 or cioc country code (yes, any!)
``` html
@@ -142,17 +98,7 @@ https://restcountries.com/v3.1/alpha/col
https://restcountries.com/v3.1/alpha/170
```
## List of codes
### V2
Search by list of ISO 3166-1 2-letter or 3-letter country codes
``` html
https://restcountries.com/v2/alpha?codes={code},{code},{code}
```
``` html
https://restcountries.com/v2/alpha?codes=col,no,ee,pe
```
### V3.1
Search by cca2, ccn3, cca3 or cioc country code (yes, any!)
``` html
https://restcountries.com/v3.1/alpha?codes={code},{code},{code}
@@ -162,16 +108,7 @@ https://restcountries.com/v3.1/alpha?codes={code},{code},{code}
https://restcountries.com/v3.1/alpha?codes=170,no,est,pe
```
## Currency
### V2
Search by ISO 4217 currency code
``` html
https://restcountries.com/v2/currency/{currency}
```
``` html
https://restcountries.com/v2/currency/cop
```
### V3.1
Search by currency code or name
``` html
https://restcountries.com/v3.1/currency/{currency}
@@ -181,7 +118,6 @@ https://restcountries.com/v3.1/currency/cop
```
### Demonym
### V3.1
Now you can search by how a citizen is called.
``` html
https://restcountries.com/v3.1/demonym/{demonym}
@@ -191,17 +127,6 @@ https://restcountries.com/v3.1/demonym/peruvian
```
## Language
### V2
Search by ISO 639-1 language code
``` javascript
https://restcountries.com/v2/lang/{et}
```
``` html
https://restcountries.com/v2/lang/es
```
### V3.1
Search by language code or name
``` html
https://restcountries.com/v3.1/lang/{currency}
@@ -214,18 +139,8 @@ https://restcountries.com/v3.1/lang/spanish
```
## Capital city
_This is the same in both versions_
Search by capital city
``` javascript
https://restcountries.com/v2/capital/{capital}
```
``` html
https://restcountries.com/v2/capital/tallinn
```
``` javascript
https://restcountries.com/v3.1/capital/{capital}
```
@@ -234,65 +149,28 @@ https://restcountries.com/v3.1/capital/tallinn
```
## Calling code
### V2
Search by calling code
``` html
https://restcountries.com/v2/callingcode/{callingcode}
```
``` html
https://restcountries.com/v2/callingcode/372
```
### V3.1
In version 3, calling codes are in the _idd_ object. There is no implementation
to search by calling codes in V3.
## Region
### V2 - V3 & V3.1
Search by region (replace X with the version you want to use)
``` html
https://restcountries.com/vX/region/{region}
https://restcountries.com/v3.1/region/{region}
```
``` html
https://restcountries.com/vX/region/europe
https://restcountries.com/v3.1/region/europe
```
## Subregions
### V2 - V3 & V3.1
You can search by subregions (replace X with the version you want to use)
``` html
https://restcountries.com/vX/subregion/{subregion}
https://restcountries.com/v3.1/subregion/{subregion}
```
``` html
https://restcountries.com/vX/subregion/Northern Europe
https://restcountries.com/v3.1/subregion/Northern Europe
```
## Regional Bloc (*Version 2 only*)
Search by regional bloc:
- EU (European Union)
- EFTA (European Free Trade Association)
- CARICOM (Caribbean Community)
- PA (Pacific Alliance)
- AU (African Union)
- USAN (Union of South American Nations)
- EEU (Eurasian Economic Union)
- AL (Arab League)
- ASEAN (Association of Southeast Asian Nations)
- CAIS (Central American Integration System)
- CEFTA (Central European Free Trade Agreement)
- NAFTA (North American Free Trade Agreement)
- SAARC (South Asian Association for Regional Cooperation)
``` html
https://restcountries.com/v2/regionalbloc/{regionalbloc}
```
``` html
https://restcountries.com/v2/regionalbloc/eu
```
## Translation (*V3.x only*)
## Translation
You can search by any translation name
``` html
https://restcountries.com/v3.1/translation/{translation}
@@ -307,76 +185,15 @@ https://restcountries.com/v3.1/translation/alemania
https://restcountries.com/v3.1/translation/Saksamaa
```
## Response Example
``` html
https://restcountries.com/v2/alpha/col
```
``` json
[[{
"name": "Colombia",
"topLevelDomain": [".co"],
"alpha2Code": "CO",
"alpha3Code": "COL",
"callingCodes": ["57"],
"capital": "Bogotá",
"altSpellings": ["CO", "Republic of Colombia", "República de Colombia"],
"region": "Americas",
"subregion": "South America",
"population": 48759958,
"latlng": [4.0, -72.0],
"demonym": "Colombian",
"area": 1141748.0,
"gini": 55.9,
"timezones": ["UTC-05:00"],
"borders": ["BRA", "ECU", "PAN", "PER", "VEN"],
"nativeName": "Colombia",
"numericCode": "170",
"currencies": [{
"code": "COP",
"name": "Colombian peso",
"symbol": "$"
}],
"languages": [{
"iso639_1": "es",
"iso639_2": "spa",
"name": "Spanish",
"nativeName": "Español"
}],
"translations": {
"de": "Kolumbien",
"es": "Colombia",
"fr": "Colombie",
"ja": "コロンビア",
"it": "Colombia",
"br": "Colômbia",
"pt": "Colômbia"
},
"flag": "https://restcountries.com/data/col.svg",
"regionalBlocs": [{
"acronym": "PA",
"name": "Pacific Alliance",
"otherAcronyms": [],
"otherNames": ["Alianza del Pacífico"]
}, {
"acronym": "USAN",
"name": "Union of South American Nations",
"otherAcronyms": ["UNASUR", "UNASUL", "UZAN"],
"otherNames": ["Unión de Naciones Suramericanas", "União de Nações Sul-Americanas", "Unie van Zuid-Amerikaanse Naties", "South American Union"]
}]
}]
```
## Filter Response
You can filter the output of your request to include only the specified fields.
``` javascript
https://restcountries.com/v2/{service}?fields={field},{field},{field}
https://restcountries.com/v3.1/{service}?fields={field},{field},{field}
```
``` html
https://restcountries.com/v2/all?fields=name,capital,currencies
https://restcountries.com/v3.1/all?fields=name,capital,currencies
```
## Similar projects