Skip to content

Instantly share code, notes, and snippets.

@syafiqfaiz
Created March 4, 2024 12:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save syafiqfaiz/5874d96a963c040ebc3532ff1b0d4722 to your computer and use it in GitHub Desktop.
Save syafiqfaiz/5874d96a963c040ebc3532ff1b0d4722 to your computer and use it in GitHub Desktop.
Postman Collection
{
"info": {
"_postman_id": "86f8898b-d2a7-4c49-acc4-fdbda6d65450",
"name": "Kelas Programming. REST API basics: CRUD",
"description": "# 🚀 Get started here\n\nThis template guides you through CRUD operations (GET, POST, PUT, DELETE), variables, and tests.\n\n## 🔖 **How to use this template**\n\n#### **Step 1: Send requests**\n\nRESTful APIs allow you to perform CRUD operations using the POST, GET, PUT, and DELETE HTTP methods.\n\nThis collection contains each of these [request](https://learning.postman.com/docs/sending-requests/requests/) types. Open each request and click \"Send\" to see what happens.\n\n#### **Step 2: View responses**\n\nObserve the response tab for status code (200 OK), response time, and size.\n\n#### **Step 3: Send new Body data**\n\nUpdate or add new data in \"Body\" in the POST request. Typically, Body data is also used in PUT request.\n\n```\n{\n \"name\": \"Add your name in the body\"\n}\n\n ```\n\n#### **Step 4: Update the variable**\n\nVariables enable you to store and reuse values in Postman. We have created a [variable](https://learning.postman.com/docs/sending-requests/variables/) called `base_url` with the sample request [https://postman-api-learner.glitch.me](https://postman-api-learner.glitch.me). Replace it with your API endpoint to customize this collection.\n\n#### **Step 5: Add tests in the \"Tests\" tab**\n\nTests help you confirm that your API is working as expected. You can write test scripts in JavaScript and view the output in the \"Test Results\" tab.\n\n<img src=\"https://content.pstmn.io/b5f280a7-4b09-48ec-857f-0a7ed99d7ef8/U2NyZWVuc2hvdCAyMDIzLTAzLTI3IGF0IDkuNDcuMjggUE0ucG5n\">\n\n## 💪 Pro tips\n\n- Use folders to group related requests and organize the collection.\n- Add more [scripts](https://learning.postman.com/docs/writing-scripts/intro-to-scripts/) in \"Tests\" to verify if the API works as expected and execute workflows.\n \n\n## 💡Related templates\n\n[API testing basics](https://go.postman.co/redirect/workspace?type=personal&collectionTemplateId=e9a37a28-055b-49cd-8c7e-97494a21eb54&sourceTemplateId=ddb19591-3097-41cf-82af-c84273e56719) \n[API documentation](https://go.postman.co/redirect/workspace?type=personal&collectionTemplateId=e9c28f47-1253-44af-a2f3-20dce4da1f18&sourceTemplateId=ddb19591-3097-41cf-82af-c84273e56719) \n[Authorization methods](https://go.postman.co/redirect/workspace?type=personal&collectionTemplateId=31a9a6ed-4cdf-4ced-984c-d12c9aec1c27&sourceTemplateId=ddb19591-3097-41cf-82af-c84273e56719)",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
"_exporter_id": "139211",
"_collection_link": "https://speeding-equinox-23869.postman.co/workspace/mailboy~23e0a3a5-b66b-4400-903e-cfa8fe83abc5/collection/139211-86f8898b-d2a7-4c49-acc4-fdbda6d65450?action=share&source=collection_link&creator=139211"
},
"item": [
{
"name": "CRUD",
"item": [
{
"name": "Show",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});"
],
"type": "text/javascript"
}
}
],
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2FwaS5rZWxhc3Byb2dyYW1taW5nLmNvbS50ZXN0Iiwic3ViIjoiOWIzODMzYjYtYzY1OC01YmRkLWIxMTAtMGJhYmZhOGQ1YzBhIiwiaWF0IjoxNzA5NDc3MDczLCJleHAiOjE3MDk2NDk4NzMsIm5hbWUiOiJzeWFmaXFmYWl6In0.RSJir2MAJiePBONZikjnaqp4u3rl6TneqbSUrZd6f2E",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "https://api.kelasprogramming.com/todo/3",
"protocol": "https",
"host": [
"api",
"kelasprogramming",
"com"
],
"path": [
"todo",
"3"
]
},
"description": "This is a GET request and it is used to \"get\" data from an endpoint. There is no request body for a GET request, but you can use query parameters to help specify the resource you want data on (e.g., in this request, we have `id=1`).\n\nA successful GET response will have a `200 OK` status, and should include some kind of response body - for example, HTML web content or JSON data."
},
"response": []
},
{
"name": "Index",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Status code is 200\", function () {",
" pm.response.to.have.status(200);",
"});"
],
"type": "text/javascript"
}
}
],
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2FwaS5rZWxhc3Byb2dyYW1taW5nLmNvbS50ZXN0Iiwic3ViIjoiOWIzODMzYjYtYzY1OC01YmRkLWIxMTAtMGJhYmZhOGQ1YzBhIiwiaWF0IjoxNzA5NDc3MDczLCJleHAiOjE3MDk2NDk4NzMsIm5hbWUiOiJzeWFmaXFmYWl6In0.RSJir2MAJiePBONZikjnaqp4u3rl6TneqbSUrZd6f2E",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "https://api.kelasprogramming.com/todo",
"protocol": "https",
"host": [
"api",
"kelasprogramming",
"com"
],
"path": [
"todo"
]
},
"description": "This is a GET request and it is used to \"get\" data from an endpoint. There is no request body for a GET request, but you can use query parameters to help specify the resource you want data on (e.g., in this request, we have `id=1`).\n\nA successful GET response will have a `200 OK` status, and should include some kind of response body - for example, HTML web content or JSON data."
},
"response": []
},
{
"name": "Create",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Successful POST request\", function () {",
" pm.expect(pm.response.code).to.be.oneOf([200, 201]);",
"});",
""
],
"type": "text/javascript"
}
}
],
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2FwaS5rZWxhc3Byb2dyYW1taW5nLmNvbS50ZXN0Iiwic3ViIjoiOWIzODMzYjYtYzY1OC01YmRkLWIxMTAtMGJhYmZhOGQ1YzBhIiwiaWF0IjoxNzA5NDc3MDczLCJleHAiOjE3MDk2NDk4NzMsIm5hbWUiOiJzeWFmaXFmYWl6In0.RSJir2MAJiePBONZikjnaqp4u3rl6TneqbSUrZd6f2E",
"type": "string"
}
]
},
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\n\t\"details\": \"another\",\n \"something\": \"asda\"\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "https://api.kelasprogramming.com/todo",
"protocol": "https",
"host": [
"api",
"kelasprogramming",
"com"
],
"path": [
"todo"
]
},
"description": "This is a POST request, submitting data to an API via the request body. This request submits JSON data, and the data is reflected in the response.\n\nA successful POST request typically returns a `200 OK` or `201 Created` response code."
},
"response": []
},
{
"name": "Update data",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Successful PUT request\", function () {",
" pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);",
"});",
""
],
"type": "text/javascript"
}
}
],
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2FwaS5rZWxhc3Byb2dyYW1taW5nLmNvbS50ZXN0Iiwic3ViIjoiOWIzODMzYjYtYzY1OC01YmRkLWIxMTAtMGJhYmZhOGQ1YzBhIiwiaWF0IjoxNzA5NDc3MDczLCJleHAiOjE3MDk2NDk4NzMsIm5hbWUiOiJzeWFmaXFmYWl6In0.RSJir2MAJiePBONZikjnaqp4u3rl6TneqbSUrZd6f2E",
"type": "string"
}
]
},
"method": "PUT",
"header": [],
"body": {
"mode": "raw",
"raw": "{\n\t\"completed\": 1\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "https://api.kelasprogramming.com/todo/3",
"protocol": "https",
"host": [
"api",
"kelasprogramming",
"com"
],
"path": [
"todo",
"3"
]
},
"description": "This is a PUT request and it is used to overwrite an existing piece of data. For instance, after you create an entity with a POST request, you may want to modify that later. You can do that using a PUT request. You typically identify the entity being updated by including an identifier in the URL (eg. `id=1`).\n\nA successful PUT request typically returns a `200 OK`, `201 Created`, or `204 No Content` response code."
},
"response": []
},
{
"name": "Delete data",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test(\"Successful DELETE request\", function () {",
" pm.expect(pm.response.code).to.be.oneOf([200, 202, 204]);",
"});",
""
],
"type": "text/javascript"
}
}
],
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2FwaS5rZWxhc3Byb2dyYW1taW5nLmNvbS50ZXN0Iiwic3ViIjoiOWIzODMzYjYtYzY1OC01YmRkLWIxMTAtMGJhYmZhOGQ1YzBhIiwiaWF0IjoxNzA5NDc3MDczLCJleHAiOjE3MDk2NDk4NzMsIm5hbWUiOiJzeWFmaXFmYWl6In0.RSJir2MAJiePBONZikjnaqp4u3rl6TneqbSUrZd6f2E",
"type": "string"
}
]
},
"method": "DELETE",
"header": [],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "https://api.kelasprogramming.com/todo/3",
"protocol": "https",
"host": [
"api",
"kelasprogramming",
"com"
],
"path": [
"todo",
"3"
]
},
"description": "This is a DELETE request, and it is used to delete data that was previously created via a POST request. You typically identify the entity being updated by including an identifier in the URL (eg. `id=1`).\n\nA successful DELETE request typically returns a `200 OK`, `202 Accepted`, or `204 No Content` response code."
},
"response": []
}
]
},
{
"name": "Authentication",
"item": [
{
"name": "Register",
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"username\": \"syafiqfaiz\",\r\n \"email\": \"syafiqfaiz@gmail.com\",\r\n \"password\": \"Abcde12345\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "https://api.kelasprogramming.com/register",
"protocol": "https",
"host": [
"api",
"kelasprogramming",
"com"
],
"path": [
"register"
]
}
},
"response": []
},
{
"name": "Login",
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"username\": \"syafiqfaiz\",\r\n \"password\": \"Abcde12345\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "https://api.kelasprogramming.com/consumer/login",
"protocol": "https",
"host": [
"api",
"kelasprogramming",
"com"
],
"path": [
"consumer",
"login"
]
}
},
"response": []
},
{
"name": "Refresh",
"request": {
"method": "PUT",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"refresh_token\": \"93b76e172ae7867b379f-7ea27ee5bcac09fbd5150b326c078d469d84188217b59b8e-90683d8967\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "https://api.kelasprogramming.com/consumer/login",
"protocol": "https",
"host": [
"api",
"kelasprogramming",
"com"
],
"path": [
"consumer",
"login"
]
}
},
"response": []
}
]
}
],
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
},
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
""
]
}
}
],
"variable": [
{
"key": "id",
"value": "1"
},
{
"key": "base_url",
"value": "https://postman-rest-api-learner.glitch.me/"
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment