{
"@context":{
"schema":"http://schema.org/",
"as":"http://www.w3.org/ns/activitystreams#"
},
"@type": "schema:Person",
"schema:name": "Michael Petychakis",
"schema:jobTitle": "Phd Student",
"schema:telephone": "(425) 123-4567",
"schema:email":"[email protected]",
"schema:url": "http://www.mpetyx.com",
"schema:nationality":"Greece",
"as:actor":{
"@id":"http://www.twitter.com/mpetyx"
}
}
About @mpetyx
http://www.slideshare.net/busaco/presentatio
ns
http://www.imdb.com/title/tt0401383/
http://www.last.fm/music/Moby
http://vimeo.com/channels/731014
Name each resource by using URLs
+optional parameters
(useful for pagination, partial responses,
filtering,…)
/snakes?limit=3&offset=14
/snakes?fields=name,age,description
Design accepted representations to be sent
by potential clients
consider existing standardized data formats
e.g., HTML, Atom, JSON,…
Accept: application/json (Digg)
/venue.json (Foursquare)
http://api.sciencemuseum.org.uk/exhibitions/
?output=json
Choose the representation(s) of the
response to be sent to client
import requests
resp = requests.get('http://apiathens.herokuapp.com/tasks/')
if resp.status_code != 200:
# This means something went wrong.
raise ApiError('GET /tasks/ {}'.format(resp.status_code))
for todo_item in resp.json():
print('{} {}'.format(todo_item['id'],todo_item[title]))
GET /Tasks
task = {"summary": "Take out trash", "description": "" }
resp =
requests.post('http://apiathens.herokuapp.com/tasks/',
json=task)
if resp.status_code != 201:
raise ApiError('POST /tasks/
{}'.format(resp.status_code))
print('Created task. ID: {}'.format(resp.json()["id"]))
POST /Task
# todo.py
def get_tasks():
pass
def describe_task(task_id):
pass
def add_task(summary, description=""):
pass
def task_done(task_id):
pass
def update_task(task_id, summary, description):
pass
#todo.py
import requests
def get_tasks():
return requests.get(_url('/tasks/'))
def describe_task(task_id):
return requests.get(_url('/tasks/{:d}/'.format(task_id)))
def add_task(summary, description=""):
return requests.post(_url('/tasks/'), json={
'summary': summary,
'description': description,
})
def task_done(task_id):
return requests.delete(_url('/tasks/{:d}/'.format(task_id)))
def update_task(task_id, summary, description):
url = _url('/tasks/{:d}/'.format(task_id))
return requests.put(url, json={
'summary': summary,
'description': description,})
Integrated Code
import todo
resp = todo.add_task("Take out trash")
if resp.status_code != 201:
raise ApiError('Cannot create task: {}'.format(resp.status_code))
print('Created task. ID: {}'.format(resp.json()["id"]))
resp = todo.get_tasks()
if resp.status_code != 200:
raise ApiError('Cannot fetch all tasks: {}'.format(resp.status_code))
for todo_item in resp.json():
print('{} {}'.format(todo_item['id'], todo_item[title]))
Let’s Use our Library!
Thank you
Michael Petychakis
@mpetyx
<a
href="mailto:[email protected]?Subject=
Hello" target="_top">Drop me an e-mail</a>
Top Related