{"id":26714815,"url":"https://github.com/k1729p/study03","last_synced_at":"2026-04-12T05:35:38.024Z","repository":{"id":276493124,"uuid":"744166235","full_name":"k1729p/Study03","owner":"k1729p","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-08T15:24:04.000Z","size":4680,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-08T16:29:26.049Z","etag":null,"topics":["docker","docker-compose","functional-endpoints","java","reactive-rest-services","reactive-streams","redis","redisinsight","spring-webflux","springboot","web-test-client","webflux"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/k1729p.png","metadata":{"files":{"readme":"docs/README.html","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-16T18:47:55.000Z","updated_at":"2025-02-08T15:24:07.000Z","dependencies_parsed_at":"2025-02-08T16:39:34.991Z","dependency_job_id":null,"html_url":"https://github.com/k1729p/Study03","commit_stats":null,"previous_names":["k1729p/study03"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/k1729p%2FStudy03","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/k1729p%2FStudy03/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/k1729p%2FStudy03/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/k1729p%2FStudy03/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/k1729p","download_url":"https://codeload.github.com/k1729p/Study03/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245858872,"owners_count":20684057,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","functional-endpoints","java","reactive-rest-services","reactive-streams","redis","redisinsight","spring-webflux","springboot","web-test-client","webflux"],"created_at":"2025-03-27T13:51:04.714Z","updated_at":"2026-04-12T05:35:38.010Z","avatar_url":"https://github.com/k1729p.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!DOCTYPE html\u003e\r\n\u003chtml lang=\"en\"\u003e\r\n\u003cmeta charset=\"UTF-8\"\u003e\r\n\u003cbody\u003e\r\n\u003ca href=\"https://github.com/k1729p/Study03/tree/main/docs\"\u003e\u003cimg alt=\"\" src=\"images/ColorScheme.png\" height=\"25\" width=\"800\"/\u003e\u003c/a\u003e\r\n\u003ch2 id=\"contents\"\u003eStudy03 README Contents\u003c/h2\u003e\r\n\r\n\u003cp\u003e\r\nTopics: SpringBoot ● Spring WebFlux ● Reactive Streams ● Reactive REST ● Redis ● Docker ● WebTestClient\r\n\u003c/p\u003e\r\n\r\n\u003ch3 id=\"top\"\u003eResearch the Reactive REST Web Service\u003c/h3\u003e\r\n\u003cp\u003e\r\nOn the server-side, \u003cb\u003eWebFlux\u003c/b\u003e supports two distinct programming models:\r\n\u003c/p\u003e\r\n\u003cul\u003e\r\n\u003cli\u003e\u003ci\u003eFunctional Endpoints\u003c/i\u003e\u003c/li\u003e\r\n\u003cli\u003e\u003ci\u003eAnnotated Controllers\u003c/i\u003e\u003c/li\u003e\r\n\u003c/ul\u003e\r\n\u003cp\u003e\r\nThe project \u003cb\u003eStudy03\u003c/b\u003e implements one of them, the \"\u003ci\u003eFunctional Endpoints\u003c/i\u003e\" programming model.\r\n\u003c/p\u003e\r\n\r\n\u003cp\u003e\u003cimg alt=\"\" src=\"images/MermaidFlowchart.png\" height=\"350\" width=\"675\"/\u003e\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/blackArrowUp.png\"\u003e\r\n\u003ci\u003eThe flowchart with Docker containers '\u003cb\u003estudy03\u003c/b\u003e' and '\u003cb\u003eredis\u003c/b\u003e'.\u003c/i\u003e\r\n\u003c/p\u003e\r\n\r\n\u003cp\u003e\r\n\u003cb\u003eRedis\u003c/b\u003e is an in-memory data structure store.\u003cbr\u003e\r\nThe \u003ca href=\"images/ScreenshotsRedisInsight.png\"\u003escreenshots\u003c/a\u003e from the\r\n\u003ca href=\"https://redis.com/redis-enterprise/redis-insight/\"\u003eRedisInsight\u003c/a\u003e (Redis data visualizer and optimizer).\r\n\u003c/p\u003e\r\n\r\n\u003cp\u003e\r\nThe sections of this project:\r\n\u003c/p\u003e\r\n\u003col\u003e\r\n\u003cli\u003e\u003ca href=\"#ONE\"\u003e\u003cb\u003eDocker Build\u003c/b\u003e\u003c/a\u003e\u003c/li\u003e\r\n\u003cli\u003e\u003ca href=\"#TWO\"\u003e\u003cb\u003eWeb Browser Client\u003c/b\u003e\u003c/a\u003e\u003c/li\u003e\r\n\u003cli\u003e\u003ca href=\"#THREE\"\u003e\u003cb\u003eJava Client\u003c/b\u003e\u003c/a\u003e\u003c/li\u003e\r\n\u003cli\u003e\u003ca href=\"#FOUR\"\u003e\u003cb\u003eCurl Client\u003c/b\u003e\u003c/a\u003e\u003c/li\u003e\r\n\u003c/ol\u003e\r\n\r\n\u003chr\u003e\r\n\r\n\u003cp\u003e\r\nJava source code. Packages:\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/aquaHR-500.png\"\u003e\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/aquaSquare.png\"\u003e\r\n    \u003ci\u003eapplication sources\u003c/i\u003e\u0026nbsp;:\u0026nbsp;\r\n\t\u003ca href=\"https://github.com/k1729p/Study03/tree/main/src/main/java/kp\"\u003ekp\u003c/a\u003e\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/aquaSquare.png\"\u003e\r\n    \u003ci\u003etest sources\u003c/i\u003e\u0026nbsp;:\u0026nbsp;\r\n\t\u003ca href=\"https://github.com/k1729p/Study03/tree/main/src/test/java/kp\"\u003ekp\u003c/a\u003e\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/aquaHR-500.png\"\u003e\r\n\u003c/p\u003e\r\n\r\n\u003cbr\u003e\r\n\r\n\u003cp\u003e\u003cimg alt=\"\" src=\"images/MermaidClassDiagram.png\" height=\"440\" width=\"590\"/\u003e\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/blackArrowUp.png\"\u003e\r\n\u003ci\u003eThe domain objects class diagram.\u003c/i\u003e\r\n\u003c/p\u003e\r\n\r\n\u003cp\u003e\r\n\u003cimg alt=\"\" src=\"images/yellowHR-500.png\"\u003e\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/yellowSquare.png\"\u003e\r\n\u003ca href=\"http://htmlpreview.github.io/?https://github.com/k1729p/Study03/blob/main/docs/apidocs/index.html\"\u003e\r\nJava API Documentation\u003c/a\u003e\u0026nbsp;●\u0026nbsp;\r\n\u003ca href=\"http://htmlpreview.github.io/?https://github.com/k1729p/Study03/blob/main/docs/testapidocs/index.html\"\u003e\r\nJava Test API Documentation\u003c/a\u003e\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/yellowHR-500.png\"\u003e\r\n\u003c/p\u003e\r\n\u003chr\u003e\r\n\u003ch3 id=\"ONE\"\u003e❶ Docker Build\u003c/h3\u003e\r\n\r\n\u003cp\u003eAction:\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/orangeHR-500.png\"\u003e\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/orangeSquare.png\"\u003e 1. With batch file\r\n \u003ca href=\"https://github.com/k1729p/Study03/blob/main/0_batch/01%20Docker%20build%20and%20run.bat\"\u003e\r\n \u003ci\u003e\"01 Docker build and run.bat\"\u003c/i\u003e\u003c/a\u003e build the image and\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/orangeSquare.png\"\u003e\u003cimg alt=\"\" src=\"images/spacer-32.png\"\u003estart the container with the SpringBoot server.\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/orangeHR-500.png\"\u003e\r\n\u003c/p\u003e\r\n\r\n\u003cp\u003e\u003cimg alt=\"\" src=\"images/greenCircle.png\"\u003e\r\n1.1. Docker image is built using these files:\r\n\u003ca href=\"https://raw.githubusercontent.com/k1729p/Study03/main/docker-config/Dockerfile\"\u003e\u003cb\u003eDockerfile\u003c/b\u003e\u003c/a\u003e and\r\n\u003ca href=\"https://raw.githubusercontent.com/k1729p/Study03/main/docker-config/compose.yaml\"\u003e\u003cb\u003ecompose.yaml\u003c/b\u003e\u003c/a\u003e.\r\n\u003c/p\u003e\r\n\u003cp\u003e\r\n\u003cimg alt=\"\" src=\"images/ScreenshotDockerContainer.png\" height=\"365\" width=\"950\"/\u003e\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/blackArrowUp.png\"\u003e\r\n\u003ci\u003eThe screenshot of the created Docker containers.\u003c/i\u003e\r\n\u003c/p\u003e\r\n\r\n\u003ca href=\"#top\"\u003eBack to the top of the page\u003c/a\u003e\r\n\u003chr\u003e\r\n\u003ch3 id=\"TWO\"\u003e❷ Web Browser Client\u003c/h3\u003e\r\n\r\n\u003cp\u003eAction:\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/orangeHR-500.png\"\u003e\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/orangeSquare.png\"\u003e 1. With the URL \u003ca href=\"http://localhost:8280\"\u003ehttp://localhost:8280\u003c/a\u003e open in the web browser the \r\n\u003ca href=\"https://github.com/k1729p/Study03/blob/main/src/main/resources/static/index.html\"\u003ehome page\u003c/a\u003e.\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/orangeSquare.png\"\u003e 2. On this\r\n\u003ca href=\"https://github.com/k1729p/Study03/blob/main/src/main/resources/static/index.html\"\u003ehome page\u003c/a\u003e\r\nselect 'Load sample dataset' \u003ca href=\"http://localhost:8280/loadSampleDataset\"\u003ehttp://localhost:8280/loadSampleDataset\u003c/a\u003e.\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/orangeHR-500.png\"\u003e\r\n\u003c/p\u003e\r\n\r\n\u003cp\u003e\u003cimg alt=\"\" src=\"images/greenCircle.png\"\u003e\r\n2.1. The \u003ca href=\"https://github.com/k1729p/Study03/blob/main/src/main/resources/static/index.html\"\u003e\r\nhome page\u003c/a\u003e on the Docker link: \u003ca href=\"http://localhost:8280/\"\u003e\u003cb\u003ehttp://localhost:8280\u003c/b\u003e\u003c/a\u003e.\u003cbr\u003e\r\n\r\n\u003cimg alt=\"\" src=\"images/ScreenshotHomePage.png\" height=\"315\" width=\"985\"/\u003e\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/blackArrowUp.png\"\u003e\r\n\u003ci\u003eThe screenshot of the home page.\u003c/i\u003e\r\n\u003c/p\u003e\r\n\r\n\u003cp\u003e\r\nBelow are the results from some selected links on the home page.\r\n\u003c/p\u003e\r\n\r\n\u003cp\u003e\u003cimg alt=\"\" src=\"images/greenCircle.png\"\u003e\r\n2.2. The 'Get all \u003cb\u003edepartments\u003c/b\u003e' link: \r\n\u003ca href=\"http://localhost:8280/company/departments\"\u003e\r\nhttp://localhost:8280/company/departments\u003c/a\u003e.\r\n\u003c/p\u003e\r\n\u003cp\u003e\r\nThe handler method:\r\n\u003ca href=\"https://github.com/k1729p/Study03/blob/main/src/main/java/kp/company/handlers/DepartmentHandler.java#L50\"\u003e\r\nkp.company.handlers.DepartmentHandler::handleDepartments\u003c/a\u003e.\u003cbr\u003e\r\n\u003c/p\u003e\r\n\u003cp\u003e\u003cimg alt=\"\" src=\"images/GetAllDepartments.png\" height=\"480\" width=\"300\"/\u003e\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/blackArrowUp.png\"\u003e\r\n\u003ci\u003eThe result from the 'Get all \u003cb\u003edepartments\u003c/b\u003e'.\u003c/i\u003e\r\n\u003c/p\u003e\r\n\r\n\u003cp\u003e\u003cimg alt=\"\" src=\"images/greenCircle.png\"\u003e\r\n2.3. The 'Get the \u003cb\u003edepartment\u003c/b\u003e by department key' link: \r\n\u003ca href=\"http://localhost:8280/company/departments/K-DEP-1\"\u003e\r\nhttp://localhost:8280/company/departments/K-DEP-1\u003c/a\u003e.\r\n\u003c/p\u003e\r\n\u003cp\u003e\r\nThe handler method:\r\n\u003ca href=\"https://github.com/k1729p/Study03/blob/main/src/main/java/kp/company/handlers/DepartmentHandler.java#L72\"\u003e\r\nkp.company.handlers.DepartmentHandler::handleDepartmentByDepartmentKey\u003c/a\u003e.\u003cbr\u003e\r\n\u003c/p\u003e\r\n\u003cp\u003e\u003cimg alt=\"\" src=\"images/GetDepartmentByDepartmentKey.png\" height=\"235\" width=\"275\"/\u003e\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/blackArrowUp.png\"\u003e\r\n\u003ci\u003eThe result from the 'Get the \u003cb\u003edepartment\u003c/b\u003e by department key'.\u003c/i\u003e\r\n\u003c/p\u003e\r\n\r\n\u003cp\u003e\u003cimg alt=\"\" src=\"images/greenCircle.png\"\u003e\r\n2.4. The 'Get the \u003cb\u003eemployee\u003c/b\u003e by department key and employee names' link: \r\n\u003ca href=\"http://localhost:8280/company/departments/K-DEP-1/employees/?firstName=EF-Name-101\u0026lastName=EL-Name-101\"\u003e\r\nhttp://localhost:8280/company/departments/K-DEP-1/employees/?firstName=EF-Name-101\u0026lastName=EL-Name-101\u003c/a\u003e.\r\n\u003c/p\u003e\r\n\u003cp\u003e\r\nThe handler method:\r\n\u003ca href=\"https://github.com/k1729p/Study03/blob/main/src/main/java/kp/company/handlers/EmployeeHandler.java#L51\"\u003e\r\nkp.company.handlers.EmployeeHandler::handleEmployeeByDepartmentKeyAndNames\u003c/a\u003e.\u003cbr\u003e\r\n\u003c/p\u003e\r\n\u003cp\u003e\u003cimg alt=\"\" src=\"images/GetEmployeeByDepartmentKeyAndEmployeeNames.png\" height=\"80\" width=\"220\"/\u003e\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/blackArrowUp.png\"\u003e\r\n\u003ci\u003eThe result from the 'Get the \u003cb\u003eemployee\u003c/b\u003e by department key and employee names'.\u003c/i\u003e\r\n\u003c/p\u003e\r\n\r\n\u003cp\u003e\u003cimg alt=\"\" src=\"images/greenCircle.png\"\u003e\r\n2.5. The 'Get all \u003cb\u003eteams\u003c/b\u003e and scores' link: \r\n\u003ca href=\"http://localhost:8280/company/teams\"\u003e\r\nhttp://localhost:8280/company/teams\u003c/a\u003e.\r\n\u003c/p\u003e\r\n\u003cp\u003e\r\nThe handler method:\r\n\u003ca href=\"https://github.com/k1729p/Study03/blob/main/src/main/java/kp/company/handlers/TeamHandler.java#L52\"\u003e\r\nkp.company.handlers.TeamHandler::handleTeams\u003c/a\u003e.\u003cbr\u003e\r\n\u003c/p\u003e\r\n\u003cp\u003e\u003cimg alt=\"\" src=\"images/GetAllTeamsAndScores.png\" height=\"545\" width=\"130\"/\u003e\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/blackArrowUp.png\"\u003e\r\n\u003ci\u003eThe result from the 'Get all \u003cb\u003eteams\u003c/b\u003e and scores'.\u003c/i\u003e\r\n\u003c/p\u003e\r\n\r\n\u003cp\u003e\u003cimg alt=\"\" src=\"images/greenCircle.png\"\u003e\r\n2.6. The 'Get the \u003cb\u003eteams\u003c/b\u003e and scores by ranges' link: \r\n\u003ca href=\"http://localhost:8280/company/teams/range?rangeFrom=1\u0026rangeTo=3\"\u003e\r\nhttp://localhost:8280/company/teams/range?rangeFrom=1\u0026rangeTo=3\u003c/a\u003e.\r\n\u003c/p\u003e\r\n\u003cp\u003e\r\nThe handler method:\r\n\u003ca href=\"https://github.com/k1729p/Study03/blob/main/src/main/java/kp/company/handlers/TeamHandler.java#L78\"\u003e\r\nkp.company.handlers.TeamHandler::handleTeamsRangeByScore\u003c/a\u003e.\u003cbr\u003e\r\n\u003c/p\u003e\r\n\u003cp\u003e\u003cimg alt=\"\" src=\"images/GetTeamsAndScoresByRanges.png\" height=\"345\" width=\"135\"/\u003e\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/blackArrowUp.png\"\u003e\r\n\u003ci\u003eThe result from the 'Get the \u003cb\u003eteams\u003c/b\u003e and scores by ranges'.\u003c/i\u003e\r\n\u003c/p\u003e\r\n\r\n\u003cp\u003e\u003cimg alt=\"\" src=\"images/greenCircle.png\"\u003e\r\n2.7. The 'Get the \u003cb\u003eteam\u003c/b\u003e rank by team id' link: \r\n\u003ca href=\"http://localhost:8280/company/teams/rank?id=1\"\u003e\r\nhttp://localhost:8280/company/teams/rank?id=1\u003c/a\u003e.\r\n\u003c/p\u003e\r\n\u003cp\u003e\r\nThe handler method:\r\n\u003ca href=\"https://github.com/k1729p/Study03/blob/main/src/main/java/kp/company/handlers/TeamHandler.java#L115\"\u003e\r\nkp.company.handlers.TeamHandler::handleTeamRankById\u003c/a\u003e.\u003cbr\u003e\r\n\u003c/p\u003e\r\n\u003cp\u003e\u003cimg alt=\"\" src=\"images/GetTeamRankByTeamId.png\" height=\"30\" width=\"30\"/\u003e\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/blackArrowUp.png\"\u003e\r\n\u003ci\u003eThe result from the 'Get the \u003cb\u003eteam\u003c/b\u003e rank by team id'.\u003c/i\u003e\r\n\u003c/p\u003e\r\n\r\n\u003ca href=\"#top\"\u003eBack to the top of the page\u003c/a\u003e\r\n\u003chr\u003e\r\n\u003ch3 id=\"THREE\"\u003e❸ Java Client\u003c/h3\u003e\r\n\r\n\u003cp\u003eAction:\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/orangeHR-500.png\"\u003e\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/orangeSquare.png\"\u003e 1. With batch file\r\n \u003ca href=\"https://github.com/k1729p/Study03/blob/main/0_batch/03%20MVN%20clean%20install%20execute%20client.bat\"\u003e\r\n \u003ci\u003e\"03 MVN clean install execute client.bat\"\u003c/i\u003e\u003c/a\u003e launch the Java client.\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/orangeHR-500.png\"\u003e\r\n\u003c/p\u003e\r\n\r\n\u003cp\u003e\u003cimg alt=\"\" src=\"images/greenCircle.png\"\u003e\r\n3.1. The client application \u003ca href=\"https://github.com/k1729p/Study03/blob/main/src/main/java/kp/client/WebClientLauncher.java\"\u003e\r\nkp.client.WebClientLauncher\u003c/a\u003e.\u003cbr\u003e\r\nThe method \r\n\u003ca href=\"https://github.com/k1729p/Study03/blob/main/src/main/java/kp/client/WebClientLauncher.java#L57\"\u003e\r\nkp.client.WebClientLauncher::performRequests\u003c/a\u003e starts three subscribers:\u003cbr\u003e\r\n\u003ca href=\"https://github.com/k1729p/Study03/blob/main/src/main/java/kp/client/subscribers/DepartmentSubscriber.java\"\u003eDepartmentSubscriber\u003c/a\u003e, \r\n\u003ca href=\"https://github.com/k1729p/Study03/blob/main/src/main/java/kp/client/subscribers/EmployeeSubscriber.java\"\u003eEmployeeSubscriber\u003c/a\u003e, \r\n\u003ca href=\"https://github.com/k1729p/Study03/blob/main/src/main/java/kp/client/subscribers/TeamSubscriber.java\"\u003eTeamSubscriber\u003c/a\u003e.\r\n\u003c/p\u003e\r\n\u003cp\u003e\r\nThe \u003ca href=\"images/ScreenshotJavaClient.png\"\u003e\r\n\u003cb\u003escreenshot\u003c/b\u003e\u003c/a\u003e\r\nof the console log from the run of the batch file \u003cb\u003e\"03 MVN clean install execute client.bat\"\u003c/b\u003e\r\n\u003c/p\u003e\r\n\r\n\u003ca href=\"#top\"\u003eBack to the top of the page\u003c/a\u003e\r\n\u003chr\u003e\r\n\u003ch3 id=\"FOUR\"\u003e❹ Curl Client\u003c/h3\u003e\r\n\r\n\u003cp\u003eAction:\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/orangeHR-500.png\"\u003e\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/orangeSquare.png\"\u003e 1. With batch file\r\n \u003ca href=\"https://github.com/k1729p/Study03/blob/main/0_batch/04%20CURL%20call%20server.bat\"\u003e\r\n \u003ci\u003e\"04 CURL call server.bat\"\u003c/i\u003e\u003c/a\u003e load the sample dataset and get departments and employees.\u003cbr\u003e\r\n\u003cimg alt=\"\" src=\"images/orangeHR-500.png\"\u003e\r\n\u003c/p\u003e\r\n\r\n\u003cp\u003e\u003cimg alt=\"\" src=\"images/greenCircle.png\"\u003e\r\n4.1. The \u003ca href=\"images/ScreenshotCurlCallServer.png\"\u003e\r\n\u003cb\u003escreenshot\u003c/b\u003e\u003c/a\u003e\r\nof the console log from the run of the batch file \u003cb\u003e\"04 CURL call server.bat\"\u003c/b\u003e\r\n\u003c/p\u003e\r\n\r\n\u003ca href=\"#top\"\u003eBack to the top of the page\u003c/a\u003e\r\n\u003chr\u003e\r\n\u003c/body\u003e\r\n\u003c/html\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fk1729p%2Fstudy03","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fk1729p%2Fstudy03","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fk1729p%2Fstudy03/lists"}