<commit_before># apitogo
<p align="center">
<img src="https://cdn.rawgit.com/cristianoliveira/apitogo/9112716a/apitogo.svg?q=1" width="150" align="center" />
<span>"An api to go, please."</span> <br>Make a fake api without a line of code for development purposes
</p>

**Working in progress**

Take a look on the desired features below. Help/suggestion are appreciated. Feel free to open an issue with any suggestion.

# Motivation

There are two motivations that made me create this project:

  - Each time I need to create some SPA for an API that was designed but still
not implemented I need to create my on server to provide the data that I need to test.

  - Each time that I have an project that uses Third Part apis I have problems to run it
locally.

That why I am working on this project so next time that I need some simple API
I going to use this tool to launch one api to go.

# Usage

Create a collection file inside the folder, for instance, `posts.json` with the follow format:
```json
{
  "data": [
    { "id": 1, "title": "Some post" },
    { "id": 2, "title": "Awesome post" },
    { "id": 3, "title": "Another post" }
  ]
}
```

Run the apitogo in the same folder:
```bash
apitogo run
```

And that it! Here are your api to go, sir.

It runs by default at port `8080` and for each json file inside the folder
it is going to create a endpoint like that:

   - `/posts` returns all data from inside the file
   - `/posts/:id` returns an object from inside the file

Try out:

```bash
curl -XGET http://localhost:8080/posts
```
Or
```bash
curl -XGET http://localhost:8080/posts/1
```

## Authentication API

It implements a basic oauth2 server also you can you for development

   - `/authorize` for webclients authorizations
   - `/token` for token requests

Default client_id: `1234` and client_secret: `apitogo1234`

# Future implementations

 - API
    - [x] Json endpoint from files
    - [x] Filter by id
    - [ ] Query by parameters
    - [ ] Restfull Api (GET, POST, PUT, DELETE)
    - [ ] Sort
    - [ ] Limit
    - [ ] Other Formats? (xml)
    - [ ] Follow json:api standards

 - Authentication
    - [ ] Basic (user/password)
    - [ ] oauth2 (token)
    - [ ] Custom Clients ID/Keys
    - [ ] Login Page

 - Customization
    - [ ] Routes
    - [ ] Schema

 - Distribution
    - [ ] Installation pack for brew
    - [ ] Installation Script for linux
<commit_msg>docs: updating project status<commit_after># apitogo
<p align="center" >
<img src="https://cdn.rawgit.com/cristianoliveira/apitogo/9112716a/apitogo.svg?q=1" width="150" align="center" />
<strong>"An api to go, please."</strong> 
</p>
<p align="center">Make a fake api without a line of code for development purposes</p>

**Working in progress**

Take a look on the desired features below. Help/suggestions are appreciated. Feel free to open an issue with any suggestion.

# Motivation

There are two motivations that made me create this project:

  - Prototyping SPAs.
  
  Each time that I need to create a SPA for a API that was designed but still not implemented I need to create my on server to provide the data needed to test.
  
  - Third Part APIs running locally 
  
  Each time that I have an project that relies on Third part apis I have problems to run it locally.

That's why I am working on this project so next time that I need some simple API I gonna just get an api to go.

# Usage

## Json Api
Create a collection file inside the folder, for instance, `posts.json` with the follow format:
```json
{
  "data": [
    { "id": 1, "title": "Some post" },
    { "id": 2, "title": "Awesome post" },
    { "id": 3, "title": "Another post" }
  ]
}
```

Run the apitogo in the same folder:

```bash
apitogo run
```

That's it! Here is your api to go, sir. Try out:

```bash
curl -XGET http://localhost:8080/posts
```

Or

```bash
curl -XGET http://localhost:8080/posts/1
```


It runs by default at port `8080` and for each json file inside the folder
it is going to create a endpoint like this:

   - `/posts` returns all data from inside the file
   - `/posts/:id` returns an object from inside the file


## Authentication API

It implements a basic oauth2 server also you can use for development

   - `/authorize` for webclients authorizations
   - `/token` for token requests

Default client_id: `1234` and client_secret: `apitogo1234`

##

# Future implementations

 - Json API
    - [x] Json endpoint from files
    - [x] Filter by id
    - [ ] Query by parameters
    - [ ] Restfull Api (GET, POST, PUT, DELETE)
    - [ ] Sort
    - [ ] Limit
    - [ ] Follow json:api standards
    - [ ] Graphql support

 - Authentication API
    - [x] Oauth2 (token)
    - [ ] Basic (user/password)
    - [ ] Custom Clients ID/Keys
    - [ ] Login Page

 - Customization
    - [ ] Routes
    - [ ] Schema

 - Distribution
    - [ ] Installation pack for brew
    - [ ] Installation Script for linux

{'fraction_non_alphanumeric': 0.1044349070100143, 'fraction_numerical': 0.015123646024933579, 'mean_word_length': 3.0681629260182874, 'pattern_counts': {'":': 14, '<': 16, '<?xml version=': 0, '>': 16, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 1}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '546899', 'n_tokens_mistral': 1612, 'n_tokens_neox': 1494, 'n_words': 659}