{"id":24938340,"url":"https://github.com/dataopstix/watsoap","last_synced_at":"2025-03-28T17:23:59.980Z","repository":{"id":56739158,"uuid":"524274059","full_name":"dataopstix/watsoap","owner":"dataopstix","description":"WATSOAP (What's The Status Of API) is a API health-checking monitoring tool","archived":false,"fork":false,"pushed_at":"2023-10-17T22:44:45.000Z","size":926,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-02T17:57:11.368Z","etag":null,"topics":["api","monitoring-tool","rest-api","restful-api"],"latest_commit_sha":null,"homepage":"https://nawinto99.github.io/watsoap/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dataopstix.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2022-08-13T02:01:50.000Z","updated_at":"2023-09-11T20:10:42.000Z","dependencies_parsed_at":"2024-06-22T00:23:33.437Z","dependency_job_id":"c33eb0e7-8540-4e8d-a636-5ad336557e55","html_url":"https://github.com/dataopstix/watsoap","commit_stats":null,"previous_names":["dataopstix/watsoap"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dataopstix%2Fwatsoap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dataopstix%2Fwatsoap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dataopstix%2Fwatsoap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dataopstix%2Fwatsoap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dataopstix","download_url":"https://codeload.github.com/dataopstix/watsoap/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246068281,"owners_count":20718503,"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":["api","monitoring-tool","rest-api","restful-api"],"created_at":"2025-02-02T17:57:16.486Z","updated_at":"2025-03-28T17:23:59.941Z","avatar_url":"https://github.com/dataopstix.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WATSOAP\n[![CodeQL](https://github.com/nawinto99/gitoxy/actions/workflows/codeql-analysis.yml/badge.svg?branch=main)](https://github.com/nawinto99/gitoxy/actions/workflows/codeql-analysis.yml)\n\n\nWATSOAP (What's The Status Of API) is a API health-checking monitoring tool\n\n![gitoxy](./docs/assets/watsoap.png)\n\n\n# Purpose\nThe purpose of this tool is to automatically monitor the health of APIs. Monitoring the health of APIs manually is a time-consuming and painful task. Watsoap is an open-source tool that returns the operational status of API endpoints and connection times on a regular basis. It is a free, simple tool that saves you time and money.\n\n# Features\n- Collects the current health status of configured APIs.\n- Generates the health status reports in a variety of file formats.\n\n# Prerequisite\n\n- Install [git](https://git-scm.com/), If it is already installed, ignore it.\n- Install [Python](https://www.python.org/), If it is already installed, ignore it.\n- If [Poetry](https://python-poetry.org/docs/) is not already installed on your local machine, proceed as follows.\n```\n    $ python -m pip install --upgrade pip\n    $ pip install poetry\n```\n\n# Setup \n\n## With GIT\n\n1. Clone this repository to your local machine.\n\n```\n    $ git https://github.com/nawinto99/watsoap.git\n```\n\n2. Change the working directory as follows.\n```\n    $ cd watsoap\n```\n3. Run following command which will install the necessary dependencies.\n\n```\n    $ poetry install\n```\n4. Rename the .env.dummy file in the config folder to .env.\n\n# Usage\n1. **config.yml**: This file contains information about the application configuration.\n2. **.env**: This file contains the Tokens, API keys, usernames and passwords, and other sensitive information.\n3. **requests.yml** : This file contains a list of requests, and the request's name should be unique in the list.\n4. **requests_data.yml** : This file contains the data required to initiate each request. Create one dictionary object for each request, and the name should exactly match the name mentioned in step one.\n\n### Update **config.yml**\n1. The names of the keys must be distinct.\n2. It is recommended to use capital letters and underscores for separate words.\n3. The following keys should be updated\n   - ***HEALTH_REPORT_LOCATION***: The location where the health status reports will be stored.\n   - ***HEALTH_REPORT_TYPE***: Health status report format. Select one of the following options.\n        - CSV\n        - JSON\n\n###### Sample:\n```\nLOG_FILE_LOCATION: ~/logs/watsoap/\nHEALTH_REPORT_LOCATION: ~/logs/watsoap/\nHEALTH_REPORT_TYPE: CSV\n```\n\n### Update **requests.yml**\n1. Create the list and map key name as **endpoints** .\n2. The name of the request should be unique in the list.\n3. It is recommended to use capital letters and underscores for separate words.\n\n###### Sample:\n\n```\nendpoints:\n  - MOCKBIN\n  - JSON_PLACE_HOLDER\n```\n\n### Update **.env**\n1. The names of the environmental variables must be distinct.\n2. It is recommended to use capital letters and underscores for separate words.\n\n###### Sample:\n```\nDOMAIN=example.org\nADMIN_EMAIL=admin@${DOMAIN}\nBASIC_AUTH_GENERIC= { \"user_name\":\"dummy_user\", \"password\":\"dummypassword\"}\nMOCKBIN= { \"user_name\":\"sample\", \"password\":\"sample\"}\n\n```\n\n### Update **requests_data.yml**\n1. Create one dictionary object for each request, and the map key name should exactly match with the request name.\n2. For each dictionary object create following keys\n    - **base_url[MANDATORY]**: Complete API URL Path.\n    - **method[MANDATORY]**: The HTTP request method to perform the desired action on a given resource. [HTTP request methods](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods)\n    - **headers[OPTIONAL]**: Custom HTTP headers.\n    - **payload[OPTIONAL]** Request payload.\n    - **params[OPTIONAL]**: Request query strings.\n    - **auth_type[MANDATORY]**: To access the resources, choose one of the following authentication types. \n            - NO-AUTH\n            - BASIC\n            - API-KEY\n    - **auth_env_name[OPTIONAL]**: The name of the authentication environment variable should exactly match the name of the environment variable created in the.env file.\n\n\n###### Sample:\n\n```\nGENERIC:\n  doc: \u003e\n    This is the generic section where requests fetch the common data for all APIs.\n  payload: |\n    {\n    \"body\": \"bar\",\n    \"userId\": 1\n    }\n  headers: |\n    {\n    \"Content-Length\": \"253\",\n    \"Content-Type\": \"application/json\",\n    \"x-pretty-print\": \"2\"\n    }\n\nMOCKBIN:\n  base_url: \"http://mockbin.com/request\"\n  method: \"POST\"\n  headers: \"GENERIC\"\n  payload: |\n    {\n    \"foo\": \"bar\"\n    }\n  params: |\n    {\n    \"foo\":[\"bar\",\"baz\"]\n    }\n  auth_type: \"BASIC\"\n  auth_env_name: \"MOCKBIN\"\n```\n\n\n# Run the application\n\n```\n$ chmod +x run.sh\n$ ./run.sh\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdataopstix%2Fwatsoap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdataopstix%2Fwatsoap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdataopstix%2Fwatsoap/lists"}