<commit_before>Prerequisites
=============

In order to follow-along with the exercises in this tutorial you will need 
to install some applications and tooling. Installation can take a while so
please try to make sure everything is installed before the session.

Option 1: Vagrant + VirtualBox (recommended)
-------------------------------------------

We have created a VM with all of the required applications already installed
and configured. To use it you will need to have Vagrant and Virtualbox
installed.

- [Download & Install VirtualBox](https://www.virtualbox.org/wiki/Downloads)
- [Download & Install Vagrant](https://www.vagrantup.com/docs/installation/)

*Be sure to reboot your host system after installing Vagrant + VirtualBox.*

Once they're installed and you've rebooted, clone this repo:

```
git clone https://github.com/tylerdave/OpenAPI-Tutorial.git
cd OpenAPI-Tutorial
```

Then from wihtin the repo dir, start the Vagrant VM:

```
vagrant up --provider virtualbox
```

Then connect via ssh:

```
vagrant ssh
```

**On Windows?** You will need to either install and configure Git Bash or SSH
to localhost:2222 using an SSH clinet program. More details:

- Connect via PuTTY: http://stackoverflow.com/a/9924122/
- SSH with Git Bash: http://stackoverflow.com/a/16247703/

### Using the VM

See [VM.md](VM.md) for more usage information.

Option 2: Manual Installation
-----------------------------

If you prefer to install all the tools into your own development environment,
you may install the following:

### Applications

- Java Runtime (7 or 8)
- Node.js and npm
- Python 3.4+

### Node Packages

Install the following Node.js packages using `npm`:

- dredd
- swagger

```
npm install -g dredd swagger
```

Note: You can omit the `-g` flag if you wish to install the packages for only
the current user.

### Tutorial Repo

Once those are installed, clone this repository:

```
git clone https://github.com/tylerdave/OpenAPI-Tutorial.git tutorial-repo
```

### Python Environment

Create and activate a new Python virtualenv:

```
python -m venv tutorial
./tutorial/bin/activate
```

Install the implementation package and its dependencies:

```
pip install -e tutorial-repo/implementation
```

Option 3: Backup Plan
---------------------

If you're unable to get everything installed correctly, you can still follow
most of the tutorial by using the online Swagger editor at
http://editor.swagger.io/#/

<commit_msg>Added POSTMAN instructions<commit_after>Prerequisites
=============

In order to follow-along with the exercises in this tutorial you will need 
to install some applications and tooling. Installation can take a while so
please try to make sure everything is installed before the session.

Option 1: Vagrant + VirtualBox (recommended)
-------------------------------------------

We have created a VM with all of the required applications already installed
and configured. To use it you will need to have Vagrant and Virtualbox
installed.

- [Download & Install VirtualBox](https://www.virtualbox.org/wiki/Downloads)
- [Download & Install Vagrant](https://www.vagrantup.com/docs/installation/)

*Be sure to reboot your host system after installing Vagrant + VirtualBox.*

Once they're installed and you've rebooted, clone this repo:

```
git clone https://github.com/tylerdave/OpenAPI-Tutorial.git
cd OpenAPI-Tutorial
```

Then from within the repo dir, start the Vagrant VM:

```
vagrant up --provider virtualbox
```

Then connect via ssh:

```
vagrant ssh
```

**On Windows?** You will need to either install and configure Git Bash or SSH
to localhost:2222 using an SSH clinet program. More details:

- Connect via PuTTY: http://stackoverflow.com/a/9924122/
- SSH with Git Bash: http://stackoverflow.com/a/16247703/

### Using the VM

See [VM.md](VM.md) for more usage information.

Option 2: Manual Installation
-----------------------------

If you prefer to install all the tools into your own development environment,
you may install the following:

### Applications

- Java Runtime (7 or 8)
- Node.js and npm
- Python 3.4+

### Node Packages

Install the following Node.js packages using `npm`:

- dredd
- swagger

```
npm install -g dredd swagger
```

Note: You can omit the `-g` flag if you wish to install the packages for only
the current user.

### Tutorial Repo

Once those are installed, clone this repository:

```
git clone https://github.com/tylerdave/OpenAPI-Tutorial.git tutorial-repo
```

### Python Environment

Create and activate a new Python virtualenv:

```
python -m venv tutorial
./tutorial/bin/activate
```

Install the implementation package and its dependencies:

```
pip install -e tutorial-repo/implementation
```

Option 3: Backup Plan
---------------------

If you're unable to get everything installed correctly, you can still follow
most of the tutorial by using the online Swagger editor at
http://editor.swagger.io/#/

Recommended
-----------

### Postman
In order to test your local application you should have a tool for performing HTTP requests.
You are free to choose any tool you find comfortable and we recommend using [Postman](https://www.getpostman.com/)

If you choose to use Postman download the version for your OS from the above link. A handy option is
to use the Chrome extension.
After downloading and installing Postman if this is your first time using the tool we recommend
getting familiar with at least these two guides:

[requests](https://www.getpostman.com/docs/requests)

[collections](https://www.getpostman.com/docs/collections)

Some of the exercises will contain a file named postman_collection and those will help you complete
the exercise more quickly.

{'fraction_non_alphanumeric': 0.11921582479689156, 'fraction_numerical': 0.009184033910279053, 'mean_word_length': 3.6040650406504064, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 11, 'lorem ipsum': 0, 'www.': 7, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 8, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2174042', 'n_tokens_mistral': 1661, 'n_tokens_neox': 1524, 'n_words': 696}