getman


Namegetman JSON
Version 1.0.0 PyPI version JSON
download
home_pagehttps://github.com/vnpnh/GetMan
SummaryGetMan is a versatile tool inspired by Postman that simplifies the process of testing and exploring APIs.
upload_time2024-08-30 11:49:10
maintainerNone
docs_urlNone
authorvnpnh
requires_python>=3.11
licenseMIT
keywords api testing api exploration http requests api endpoints request headers query parameters request bodies api management postman alternative restful apis testing tool debugging tool development tools api client api interaction.
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <a name="readme-top"></a>


<!-- PROJECT SHIELDS -->
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![MIT License][license-shield]][license-url]



<!-- PROJECT LOGO -->
<br />
<div align="center">
  <a href="#">
    <img src="https://storage.enlorve.com/assets/file/photos/getman/getman_logo.png" alt="Logo" width="150" height="150">
  </a>

<h3 align="center">GetMan</h3>

  <p align="center">
   GetMan is a versatile tool inspired by Postman that simplifies the process of testing and exploring APIs.
    <br />
    <a href="#"><strong>Explore the docs »</strong></a>
    <br />
    <br />
    <a href="#">View Demo</a>
    ·
    <a href="#">Report Bug</a>
    ·
    <a href="#">Request Feature</a>
  </p>
</div>



<!-- TABLE OF CONTENTS -->
<details>
  <summary>Table of Contents</summary>
  <ol>
    <li>
      <a href="#about-the-project">About The Project</a>
      <ul>
        <li><a href="#built-with">Built With</a></li>
      </ul>
    </li>
    <li>
      <a href="#getting-started">Getting Started</a>
      <ul>
        <li><a href="#prerequisites">Prerequisites</a></li>
        <li><a href="#installation">Installation</a></li>
      </ul>
    </li>
    <li><a href="#usage">Usage</a></li>
    <li><a href="#roadmap">Roadmap</a></li>
    <li><a href="#contributing">Contributing</a></li>
    <li><a href="#license">License</a></li>
    <li><a href="#acknowledgments">Acknowledgments</a></li>
  </ol>
</details>

<!-- ABOUT THE PROJECT -->

## About The Project

GetMan is a Python-based API testing tool inspired by Postman. It simplifies the process of testing and exploring APIs
by providing a simple and intuitive functions for making HTTP requests.

Key features of GetMan include:

- **Versatile HTTP Client**: GetMan supports all common HTTP methods and allows you to customize your requests with
  headers, query parameters, and body data.
- **Queue Management**: GetMan allows you to queue your requests and execute them concurrently. This can significantly
  improve the performance of your program when dealing with a large number of requests.
- **Report Generation**: GetMan can generate detailed reports of your API requests, including the request URL, method,
  status code, headers, and response data.
- **And Much More...**

Whether you're a developer testing your own APIs or a tester exploring third-party APIs, GetMan provides a powerful and
flexible tool to help you get the job done.

<p align="right">(<a href="#readme-top">back to top</a>)</p>

### Built With

This project built with the following technologies:

* [![Python][Python]][Python-url]

<p align="right">(<a href="#readme-top">back to top</a>)</p>



<!-- GETTING STARTED -->

## Getting Started

This is an example of how you may give instructions on setting up your project locally.
To get a local copy up and running follow these simple example steps.

### Prerequisites

Before you can use GetMan, you need to have the following software installed on your system:

* Python
  ```sh 
  Install python from https://www.python.org/
  ```

### Installation

To install the library, you can just run the following command:

1. Install library
   ```sh
   pip install getman
   ```

<p align="right">(<a href="#readme-top">back to top</a>)</p>



<!-- USAGE EXAMPLES -->

## Usage

GetMan is designed to be simple and intuitive to use. Below are some examples of how you can use GetMan to test and
explore APIs.

### Making a Simple GET Request

```python
from getman import GetMan
from getman.constant import HttpMethod
from getman.manager.dict import ParamManager

url = "https://example.com"
version = "your-version"  # Optional
client = GetMan(base_url=url, version=version)
client.add_cookie("sessionid", "RANDOM SESSION ID")

params = ParamManager()
params["category"] = "tools"

route = client.routes("product")
response = client.perform_request(method=HttpMethod.GET, routes=route, params=params.data)

client.get_report(response)
```

### Making a POST Request with JSON Body

```python
from getman import GetMan
from getman.constant import HttpMethod
from getman.manager.dict import DictManager

url = "https://example.com"
version = "your-version"  # Optional
client = GetMan(base_url=url, version=version)
client.add_cookie("sessionid", "RANDOM SESSION ID")

body = DictManager()
body["product_name"] = "getman"

route = client.routes("product")
response = client.perform_request(method=HttpMethod.POST, routes=route, body=body.data)

client.get_report(response)
```

### Making a Queue Request or simulate concurrent requests

```python

from getman import GetMan
from getman.constant import HttpMethod
from getman.manager.dict import DictManager
from getman.utils.decorators import coroutine


@coroutine  # use this to run coroutine
async def main():
    url = "https://example.com"

    client = GetMan(base_url=url)

    body = DictManager()
    body["product_name"] = "getman"

    route = client.routes("product")
    total_request = 100
    for i in range(total_request):
        await client.perform_request(method=HttpMethod.POST, routes=route, body=body.data, queue=True)

    client.execute_queue()  # Execute all queued requests concurrently
```

For more examples, please refer to the [Documentation](https://example.com)_

<p align="right">(<a href="#readme-top">back to top</a>)</p>


<!-- ROADMAP -->

## Roadmap

- [x] Support Mock Server
- [ ] Generate Report such as PDF, HTML, etc
- [ ] Add Security scan
- [ ] Add stress testing

See the [open issues](https://github.com/vnpnh/GetMan/issues) for a full list of proposed features (
and known issues).

<p align="right">(<a href="#readme-top">back to top</a>)</p>



<!-- CONTRIBUTING -->

## Contributing

Getman is an open-source project, and we welcome contributions of all kinds.
Whether you want to report a bug, request a feature, or submit a pull request, we appreciate your help!
Please refer to the [contribution guidelines](CONTRIBUTING.MD) for more information.


<p align="right">(<a href="#readme-top">back to top</a>)</p>


<!-- LICENSE -->

## License

Distributed under the MIT License. See [LICENSE](LICENSE) for more information.

<p align="right">(<a href="#readme-top">back to top</a>)</p>


<!-- ACKNOWLEDGMENTS -->

## Acknowledgments

* [Python Official](https://www.python.org/)

<p align="right">(<a href="#readme-top">back to top</a>)</p>



<!-- MARKDOWN LINKS & IMAGES -->
<!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->

[forks-shield]: https://img.shields.io/github/forks/vnpnh/GetMan.svg?style=for-the-badge

[forks-url]: https://github.com/vnpnh/GetMan/network/members

[stars-shield]: https://img.shields.io/github/stars/vnpnh/GetMan.svg?style=for-the-badge

[stars-url]: https://github.com/vnpnh/GetMan/stargazers

[issues-shield]: https://img.shields.io/github/issues/vnpnh/GetMan.svg?style=for-the-badge

[issues-url]: https://github.com/vnpnh/GetMan/issues

[license-shield]: https://img.shields.io/github/license/vnpnh/GetMan.svg?style=for-the-badge

[license-url]: https://github.com/vnpnh/GetMan/blob/master/LICENSE

[product-screenshot]: images/screenshot.png

[Python]:    https://img.shields.io/badge/Python-3.11+-3776AB?style=for-the-badge&logo=python&logoColor=white

[Python-url]: https://www.python.org/

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/vnpnh/GetMan",
    "name": "getman",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "API testing, API exploration, HTTP requests, API endpoints, request headers, query parameters, request bodies, API management, Postman alternative, RESTful APIs, testing tool, debugging tool, development tools, API client, API interaction.",
    "author": "vnpnh",
    "author_email": "no@email.com",
    "download_url": "https://files.pythonhosted.org/packages/ee/5f/b3efc12d8cce537a315ff95d41e2dd2225c9776f3cd24ad2a4ec2693ff0f/getman-1.0.0.tar.gz",
    "platform": null,
    "description": "<a name=\"readme-top\"></a>\n\n\n<!-- PROJECT SHIELDS -->\n[![Forks][forks-shield]][forks-url]\n[![Stargazers][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-url]\n[![MIT License][license-shield]][license-url]\n\n\n\n<!-- PROJECT LOGO -->\n<br />\n<div align=\"center\">\n  <a href=\"#\">\n    <img src=\"https://storage.enlorve.com/assets/file/photos/getman/getman_logo.png\" alt=\"Logo\" width=\"150\" height=\"150\">\n  </a>\n\n<h3 align=\"center\">GetMan</h3>\n\n  <p align=\"center\">\n   GetMan is a versatile tool inspired by Postman that simplifies the process of testing and exploring APIs.\n    <br />\n    <a href=\"#\"><strong>Explore the docs \u00bb</strong></a>\n    <br />\n    <br />\n    <a href=\"#\">View Demo</a>\n    \u00b7\n    <a href=\"#\">Report Bug</a>\n    \u00b7\n    <a href=\"#\">Request Feature</a>\n  </p>\n</div>\n\n\n\n<!-- TABLE OF CONTENTS -->\n<details>\n  <summary>Table of Contents</summary>\n  <ol>\n    <li>\n      <a href=\"#about-the-project\">About The Project</a>\n      <ul>\n        <li><a href=\"#built-with\">Built With</a></li>\n      </ul>\n    </li>\n    <li>\n      <a href=\"#getting-started\">Getting Started</a>\n      <ul>\n        <li><a href=\"#prerequisites\">Prerequisites</a></li>\n        <li><a href=\"#installation\">Installation</a></li>\n      </ul>\n    </li>\n    <li><a href=\"#usage\">Usage</a></li>\n    <li><a href=\"#roadmap\">Roadmap</a></li>\n    <li><a href=\"#contributing\">Contributing</a></li>\n    <li><a href=\"#license\">License</a></li>\n    <li><a href=\"#acknowledgments\">Acknowledgments</a></li>\n  </ol>\n</details>\n\n<!-- ABOUT THE PROJECT -->\n\n## About The Project\n\nGetMan is a Python-based API testing tool inspired by Postman. It simplifies the process of testing and exploring APIs\nby providing a simple and intuitive functions for making HTTP requests.\n\nKey features of GetMan include:\n\n- **Versatile HTTP Client**: GetMan supports all common HTTP methods and allows you to customize your requests with\n  headers, query parameters, and body data.\n- **Queue Management**: GetMan allows you to queue your requests and execute them concurrently. This can significantly\n  improve the performance of your program when dealing with a large number of requests.\n- **Report Generation**: GetMan can generate detailed reports of your API requests, including the request URL, method,\n  status code, headers, and response data.\n- **And Much More...**\n\nWhether you're a developer testing your own APIs or a tester exploring third-party APIs, GetMan provides a powerful and\nflexible tool to help you get the job done.\n\n<p align=\"right\">(<a href=\"#readme-top\">back to top</a>)</p>\n\n### Built With\n\nThis project built with the following technologies:\n\n* [![Python][Python]][Python-url]\n\n<p align=\"right\">(<a href=\"#readme-top\">back to top</a>)</p>\n\n\n\n<!-- GETTING STARTED -->\n\n## Getting Started\n\nThis is an example of how you may give instructions on setting up your project locally.\nTo get a local copy up and running follow these simple example steps.\n\n### Prerequisites\n\nBefore you can use GetMan, you need to have the following software installed on your system:\n\n* Python\n  ```sh \n  Install python from https://www.python.org/\n  ```\n\n### Installation\n\nTo install the library, you can just run the following command:\n\n1. Install library\n   ```sh\n   pip install getman\n   ```\n\n<p align=\"right\">(<a href=\"#readme-top\">back to top</a>)</p>\n\n\n\n<!-- USAGE EXAMPLES -->\n\n## Usage\n\nGetMan is designed to be simple and intuitive to use. Below are some examples of how you can use GetMan to test and\nexplore APIs.\n\n### Making a Simple GET Request\n\n```python\nfrom getman import GetMan\nfrom getman.constant import HttpMethod\nfrom getman.manager.dict import ParamManager\n\nurl = \"https://example.com\"\nversion = \"your-version\"  # Optional\nclient = GetMan(base_url=url, version=version)\nclient.add_cookie(\"sessionid\", \"RANDOM SESSION ID\")\n\nparams = ParamManager()\nparams[\"category\"] = \"tools\"\n\nroute = client.routes(\"product\")\nresponse = client.perform_request(method=HttpMethod.GET, routes=route, params=params.data)\n\nclient.get_report(response)\n```\n\n### Making a POST Request with JSON Body\n\n```python\nfrom getman import GetMan\nfrom getman.constant import HttpMethod\nfrom getman.manager.dict import DictManager\n\nurl = \"https://example.com\"\nversion = \"your-version\"  # Optional\nclient = GetMan(base_url=url, version=version)\nclient.add_cookie(\"sessionid\", \"RANDOM SESSION ID\")\n\nbody = DictManager()\nbody[\"product_name\"] = \"getman\"\n\nroute = client.routes(\"product\")\nresponse = client.perform_request(method=HttpMethod.POST, routes=route, body=body.data)\n\nclient.get_report(response)\n```\n\n### Making a Queue Request or simulate concurrent requests\n\n```python\n\nfrom getman import GetMan\nfrom getman.constant import HttpMethod\nfrom getman.manager.dict import DictManager\nfrom getman.utils.decorators import coroutine\n\n\n@coroutine  # use this to run coroutine\nasync def main():\n    url = \"https://example.com\"\n\n    client = GetMan(base_url=url)\n\n    body = DictManager()\n    body[\"product_name\"] = \"getman\"\n\n    route = client.routes(\"product\")\n    total_request = 100\n    for i in range(total_request):\n        await client.perform_request(method=HttpMethod.POST, routes=route, body=body.data, queue=True)\n\n    client.execute_queue()  # Execute all queued requests concurrently\n```\n\nFor more examples, please refer to the [Documentation](https://example.com)_\n\n<p align=\"right\">(<a href=\"#readme-top\">back to top</a>)</p>\n\n\n<!-- ROADMAP -->\n\n## Roadmap\n\n- [x] Support Mock Server\n- [ ] Generate Report such as PDF, HTML, etc\n- [ ] Add Security scan\n- [ ] Add stress testing\n\nSee the [open issues](https://github.com/vnpnh/GetMan/issues) for a full list of proposed features (\nand known issues).\n\n<p align=\"right\">(<a href=\"#readme-top\">back to top</a>)</p>\n\n\n\n<!-- CONTRIBUTING -->\n\n## Contributing\n\nGetman is an open-source project, and we welcome contributions of all kinds.\nWhether you want to report a bug, request a feature, or submit a pull request, we appreciate your help!\nPlease refer to the [contribution guidelines](CONTRIBUTING.MD) for more information.\n\n\n<p align=\"right\">(<a href=\"#readme-top\">back to top</a>)</p>\n\n\n<!-- LICENSE -->\n\n## License\n\nDistributed under the MIT License. See [LICENSE](LICENSE) for more information.\n\n<p align=\"right\">(<a href=\"#readme-top\">back to top</a>)</p>\n\n\n<!-- ACKNOWLEDGMENTS -->\n\n## Acknowledgments\n\n* [Python Official](https://www.python.org/)\n\n<p align=\"right\">(<a href=\"#readme-top\">back to top</a>)</p>\n\n\n\n<!-- MARKDOWN LINKS & IMAGES -->\n<!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->\n\n[forks-shield]: https://img.shields.io/github/forks/vnpnh/GetMan.svg?style=for-the-badge\n\n[forks-url]: https://github.com/vnpnh/GetMan/network/members\n\n[stars-shield]: https://img.shields.io/github/stars/vnpnh/GetMan.svg?style=for-the-badge\n\n[stars-url]: https://github.com/vnpnh/GetMan/stargazers\n\n[issues-shield]: https://img.shields.io/github/issues/vnpnh/GetMan.svg?style=for-the-badge\n\n[issues-url]: https://github.com/vnpnh/GetMan/issues\n\n[license-shield]: https://img.shields.io/github/license/vnpnh/GetMan.svg?style=for-the-badge\n\n[license-url]: https://github.com/vnpnh/GetMan/blob/master/LICENSE\n\n[product-screenshot]: images/screenshot.png\n\n[Python]:    https://img.shields.io/badge/Python-3.11+-3776AB?style=for-the-badge&logo=python&logoColor=white\n\n[Python-url]: https://www.python.org/\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "GetMan is a versatile tool inspired by Postman that simplifies the process of testing and exploring APIs.",
    "version": "1.0.0",
    "project_urls": {
        "Homepage": "https://github.com/vnpnh/GetMan"
    },
    "split_keywords": [
        "api testing",
        " api exploration",
        " http requests",
        " api endpoints",
        " request headers",
        " query parameters",
        " request bodies",
        " api management",
        " postman alternative",
        " restful apis",
        " testing tool",
        " debugging tool",
        " development tools",
        " api client",
        " api interaction."
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "35801b92f759e785c74b4db59756a87f9e5d24c9b04e8362fed8d9e33e6d7af8",
                "md5": "764c3f063efd5e48adc293b2b20108f7",
                "sha256": "2db74fe9d8aa9d90b7a1c5ba6c47d22110fec82f2203a93164f9c5bca031272c"
            },
            "downloads": -1,
            "filename": "getman-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "764c3f063efd5e48adc293b2b20108f7",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 23689,
            "upload_time": "2024-08-30T11:49:09",
            "upload_time_iso_8601": "2024-08-30T11:49:09.430593Z",
            "url": "https://files.pythonhosted.org/packages/35/80/1b92f759e785c74b4db59756a87f9e5d24c9b04e8362fed8d9e33e6d7af8/getman-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ee5fb3efc12d8cce537a315ff95d41e2dd2225c9776f3cd24ad2a4ec2693ff0f",
                "md5": "e1054e9c3d967fbf515f9da98929c09b",
                "sha256": "2af64fcf1b6170ab2dec1057bcec3f07a7a5f48800fd30512abe3ca2a02eecd7"
            },
            "downloads": -1,
            "filename": "getman-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "e1054e9c3d967fbf515f9da98929c09b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 22793,
            "upload_time": "2024-08-30T11:49:10",
            "upload_time_iso_8601": "2024-08-30T11:49:10.605500Z",
            "url": "https://files.pythonhosted.org/packages/ee/5f/b3efc12d8cce537a315ff95d41e2dd2225c9776f3cd24ad2a4ec2693ff0f/getman-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-30 11:49:10",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "vnpnh",
    "github_project": "GetMan",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "getman"
}
        
Elapsed time: 0.53181s