Commits: 2
Update URLs to Joke as a Service
index 2be67b6..f49b0fd 100644
--- a/index.ipynb
+++ b/index.ipynb
@@ -100,7 +100,7 @@
= "source": [
= "## Exercise: Let's see it in action\n",
= "\n",
- "Navigate your browser to http://tedros-hagos.com:8000/docs/ and try to use the provided UI to:\n",
+ "Navigate your browser to http://jaas.tedros-hagos.com/docs/ and try to use the provided UI to:\n",
= "\n",
= " 1. List all jokes\n",
= " 2. Register a new user (joker) and share a few funny jokes.\n",
@@ -136,9 +136,9 @@
= "import requests\n",
= "from IPython.display import JSON\n",
= "\n",
- "jokes_url = \"http://tedros-hagos.com:8000/\"\n",
+ "jokes_url = \"https://jaas.tedros-hagos.com\"\n",
= "\n",
- "response = requests.get (jokes_url + \"jokes/?sort=author_name\")\n",
+ "response = requests.get (f\"{jokes_url}/jokes/?sort=author_name\")\n",
= "\n",
= "JSON (response.json())"
= ]Split the long list of methods into cells
It was causing rendering issues in some browsers.
Also apply small edits.
index f49b0fd..8bc191e 100644
--- a/index.ipynb
+++ b/index.ipynb
@@ -117,7 +117,7 @@
= "source": [
= "## Workshop: Let's write some code\n",
= "\n",
- "Here is a starter code to get jokes sorted by author name. How would you change it to get the least funny jokes first?"
+ "Here is a starter code to get jokes sorted by author name. Click on the code block and press <kbd>shift</kbd>+<kbd>enter</kbd> to run it. How would you change it to get the least funny jokes first? Double click to edit."
= ]
= },
= {
@@ -418,72 +418,132 @@
= },
= {
= "cell_type": "markdown",
- "id": "fea55693-70bf-4619-be96-865e101309af",
+ "id": "3fa63afa-d128-4560-90f2-e8651cf58f7c",
= "metadata": {},
= "source": [
= "## Methods (Verbs)\n",
= "\n",
- "These are commonly used methods. New methods can (and historically were) introduced. Server are only required to implement the GET and HEAD methods.\n",
+ "These are commonly used methods. New methods can (and historically were) introduced. Server are only required to implement the GET and HEAD methods."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "e956526f-e045-4fd9-9fc4-c5caa1f42ce5",
+ "metadata": {},
+ "source": [
+ "### GET\n",
+ " \n",
+ "Retrieve a resource"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "5eba70dc-e532-4d04-b934-19ce4e7f79fc",
+ "metadata": {},
+ "source": [
+ "### HEAD\n",
= "\n",
+ "Like get, but the response should come without a body. Useful for checking if a resource exists or getting it's metadata (like size or modification time)."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "e55da8b0-1a6a-48b6-963e-5ed85c2200d6",
+ "metadata": {},
+ "source": [
+ "### POST\n",
= "\n",
- " * GET\n",
= " \n",
- " Retrieve a resource\n",
+ "Store a new resource or start a non-idempotent process. The URL typically points to an existing resource, for example a collection. The target resource is \"responsible\" for creating the new one. For example:\n",
= " \n",
- " * HEAD\n",
- " \n",
- " Like get, but the response should come without a body. Useful for checking if a resource exists or getting it's metadata (like size or modification time).\n",
- " \n",
- " * POST\n",
- " \n",
- " Store a new resource or start a non-idempotent process. The URL typically points to an existing resource, for example a collection. The target resource is \"responsible\" for creating the new one. For example:\n",
- " \n",
- " ``` http\n",
- " POST https://example.com/products HTTP/1.1\n",
- " \n",
- " REST-o-Matic 2000\n",
- " ```\n",
+ "``` http\n",
+ "POST https://example.com/products HTTP/1.1\n",
+ "\n",
+ "REST-o-Matic 2000\n",
+ "```\n",
= " \n",
- " Response:\n",
+ "Response:\n",
= " \n",
- " ``` http\n",
- " 200 OK HTTP/1.1\n",
- " Location: /products/1337-rest-o-matic-2000.html\n",
- " ```\n",
+ "``` http\n",
+ "200 OK HTTP/1.1\n",
+ "Location: /products/1337-rest-o-matic-2000.html\n",
+ "```\n",
= " \n",
- " Here target resource is `/products` (a collection) and the new resource is `/products/1337-rest-o-matic-2000.html`, as indicated by the server in the `Location` response header.\n",
- " \n",
- " \n",
- " * PUT\n",
- " \n",
- " Replace or update an existing resource, or create a new one at the given location. Therefore the URL must point to the target resource (unlike POST).\n",
- " \n",
- " \n",
- " * PATCH\n",
- " \n",
- " Update an existing resource with a partial representation in the request body.\n",
- " \n",
- " \n",
- " * DELETE\n",
- " \n",
- " Remove an existing resource\n",
- " \n",
- " \n",
- " * OPTIONS\n",
- " \n",
- " Inquire about a resource.\n",
- " \n",
- " \n",
- " * CONNECT\n",
- " \n",
- " Request estblishing a TCP/IP tunel. See <https://en.wikipedia.org/wiki/HTTP_tunnel#HTTP_CONNECT_method>.\n",
+ "Here target resource is `/products` (a collection) and the new resource is `/products/1337-rest-o-matic-2000.html`, as indicated by the server in the `Location` response header."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "9719f3b7-b3b1-4f0f-b060-f5f6ddf7a104",
+ "metadata": {},
+ "source": [
+ "### PUT\n",
= " \n",
+ "Replace or update an existing resource, or create a new one at the given location. Therefore the URL must point to the target resource (unlike POST).\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "c2d02be5-ff19-49ff-bfd0-e30dfd94fce7",
+ "metadata": {},
+ "source": [
+ "### PATCH\n",
= " \n",
- " * TRACE\n",
+ "Update an existing resource with a partial representation in the request body."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "fae79372-7bcd-4f1f-bc7d-65a839646f7c",
+ "metadata": {},
+ "source": [
+ "### DELETE\n",
= " \n",
- " Like an echo. The TRACE method requests that the target resource transfer the received request in the response body. That way a client can see what (if any) changes or additions have been made by intermediaries.\n",
+ "Remove an existing resource\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "a2390699-78d4-419e-a5c3-850ec1c826a1",
+ "metadata": {},
+ "source": [
+ "### OPTIONS\n",
+ "\n",
+ "Inquire about a resource.\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "13c88f77-c1ec-45be-aec7-e9005d838ad0",
+ "metadata": {},
+ "source": [
+ "### CONNECT\n",
= "\n",
- "> Exercise: Use different methods with the example API. Discuss."
+ "Request estblishing a TCP/IP tunel. See <https://en.wikipedia.org/wiki/HTTP_tunnel#HTTP_CONNECT_method>.\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "8a6e32d7-2053-46ab-b694-08b3deacb891",
+ "metadata": {},
+ "source": [
+ "### TRACE\n",
+ "\n",
+ "Like an echo. The TRACE method requests that the target resource transfer the received request in the response body. That way a client can see what (if any) changes or additions have been made by intermediaries."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "c4b69e14-39d6-43c6-9e55-59bcff160604",
+ "metadata": {},
+ "source": [
+ "### Exercise\n",
+ "\n",
+ "Use different methods with the example API. Discuss."
= ]
= },
= {
@@ -561,7 +621,7 @@
= "metadata": {},
= "outputs": [],
= "source": [
- "HTTP (requests.get(\"https://tad-lispy.com/\", params={ \"hello\": True, \"name\": \"Tad 'Lispy' Łazurski\" }))"
+ "HTTP (requests.head(\"https://tad-lispy.com/\", params={ \"hello\": True, \"name\": \"Tad 'Lispy' Łazurski\" }))"
= ]
= },
= {
@@ -661,17 +721,6 @@
= "> Exercise: Try to get different status codes from the example API.\n"
= ]
= },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "0f018758-9591-4094-a0d2-fe41a2716290",
- "metadata": {},
- "outputs": [],
- "source": [
- "response = requests.get (jokes_url + \"/random_joke/\")\n",
- "HTTP (response)"
- ]
- },
= {
= "cell_type": "markdown",
= "id": "163f31ea-9563-4b51-a915-ffaae71ae108",