API Project: Timestamp Microservice
User Stories :
- The API endpoint is
GET [project_url]/api/timestamp/:date_string?
- A date string is valid if can be successfully parsed by
new Date(date_string)
.
Note that the unix timestamp needs to be an integer (not a string) specifying
milliseconds.
In our test we will use date strings compliant with ISO-8601 (e.g. "2016-11-20"
) because
this will ensure an UTC timestamp.
- If the date string is empty it should be equivalent to trigger
new Date()
,
i.e. the service uses the current timestamp.
- If the date string is valid the api returns a JSON having the
structure
{"unix": <date.getTime()>, "utc" : <date.toUTCString()> }
e.g. {"unix": 1479663089000 ,"utc": "Sun, 20 Nov 2016 17:31:29 GMT"}
- If the date string is invalid the api returns a JSON having the structure
{"unix": null, "utc" : "Invalid Date" }
. It is what you get from the date manipulation
functions used above.
Example Usage:
-
GET [project url]/api/timestamp/2015-12-25
GET project url]/api/timestamp/1450137600
Example Output:
{"unix":1451001600000, "utc":"Fri, 25 Dec 2015 00:00:00 GMT"}
API Project: Request Header Parser Microservice
User Story:
1. I can get the IP address, preferred languages (from header Accept-Language
)
and system infos
(from header User-Agent
) for my device.
Example Usage:
[base url]/api/whoami
Example Output:
{"ipaddress":"::ffff:159.20.14.100","language":"en-US,en;q=0.5",
"software":"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0"}
API Project: URL Shortener Microservice
User Story:
- I can POST a URL to
[project_url]/api/shorturl/new
and I will receive a shortened URL in
the JSON response.
Example : {"original_url":"www.google.com","short_url":1}
- If I pass an invalid URL that doesn't follow the
http(s)://www.example.com(/more/routes)
format, the JSON response will contain an error like {"error":"invalid URL"}
HINT: to be sure that the submitted url points to a valid site you can use the function
dns.lookup(host, cb)
from the dns
core module.
- When I visit the shortened URL, it will redirect me to my original link.
Short URL Creation
example: POST [project_url]/api/shorturl/new
- https://www.google.com
Example Usage:
[this_project_url]/api/shorturl/3
Will Redirect to:
https://www.freecodecamp.org/forum/
Exercise tracker
GET users's exercise log:
GET /api/exercise/log?{userId}[&from][&to][&limit]
{ } = required, [ ] = optional
from, to = dates (yyyy-mm-dd); limit = number
API Project: File Metadata Microservice
User Stories:
- I can submit a form object that includes a file upload.
- The from file input field has the "name" attribute set to "upfile". We rely on this in testing.
- When I submit something, I will receive the file name, and size in bytes within the JSON response.
Usage:
Please Upload a File ...