<commit_before># autonym

[![CircleCI](https://circleci.com/gh/mmiller42/autonym.svg?style=svg)](https://circleci.com/gh/mmiller42/autonym) [![Greenkeeper badge](https://badges.greenkeeper.io/mmiller42/autonym.svg)](https://greenkeeper.io/)

A KISS JSON REST API framework that can be mounted to your Express application.

<details>
  <summary><strong>Table of Contents</strong></summary>

<!-- toc -->

- [Philosophy](#philosophy)
- [Guide](#guide)
  * [Glossary](#glossary)
  * [Hello World](#hello-world)
- [API](#api)

<!-- tocstop -->
</details>

## Philosophy

<details>
  <summary>
    Autonym is another framework built on top of [Express](https://expressjs.com/) to simplify building REST APIs for your resources. However, its philosophy sets it apart from most other Node.js API frameworks.
  </summary>
  <br>

It is extremely lightweight and written in ES6. By design, it eliminates the need to scaffold controllers in your API, because they can be inferred automatically from your models. Models are driven by simple configuration objects and in many cases can just forward their arguments to an ORM. As a result, APIs built in Autonym require little coding but still offer total control over each CRUD action for a resource, and are very easy to understand at a glance.

* **It's just middleware.** Most frameworks take over your entire application, making it difficult to adjust an existing app to the new framework's setup. This also results in endless frustration when trying to do something the framework isn't designed to do. Autonym is just mounted like any other middleware, so you can add other middleware and handlers before or after Autonym to do whatever you want, the way you normally would.
<commit_msg>can't use markdown in html :(<commit_after># autonym

[![CircleCI](https://circleci.com/gh/mmiller42/autonym.svg?style=svg)](https://circleci.com/gh/mmiller42/autonym) [![Greenkeeper badge](https://badges.greenkeeper.io/mmiller42/autonym.svg)](https://greenkeeper.io/)

A KISS JSON REST API framework that can be mounted to your Express application.

<details>
  <summary><strong>Table of Contents</strong></summary>

<!-- toc -->

- [Philosophy](#philosophy)
- [Guide](#guide)
  * [Glossary](#glossary)
  * [Hello World](#hello-world)
- [API](#api)

<!-- tocstop -->
</details>

## Philosophy

<details>
  <summary>
  Autonym is another framework built on top of <a href="https://expressjs.com/">Express</a> to simplify building REST APIs for your resources. However, its philosophy sets it apart from most other Node.js API frameworks.
  </summary>
  <br>

It is extremely lightweight and written in ES6. By design, it eliminates the need to scaffold controllers in your API, because they can be inferred automatically from your models. Models are driven by simple configuration objects and in many cases can just forward their arguments to an ORM. As a result, APIs built in Autonym require little coding but still offer total control over each CRUD action for a resource, and are very easy to understand at a glance.

* **It's just middleware.** Most frameworks take over your entire application, making it difficult to adjust an existing app to the new framework's setup. This also results in endless frustration when trying to do something the framework isn't designed to do. Autonym is just mounted like any other middleware, so you can add other middleware and handlers before or after Autonym to do whatever you want, the way you normally would.

{'fraction_non_alphanumeric': 0.09383070301291248, 'fraction_numerical': 0.0040172166427546625, 'mean_word_length': 4.604501607717042, 'pattern_counts': {'":': 0, '<': 29, '<?xml version=': 0, '>': 29, 'https://': 10, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, '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': '1475784', 'n_tokens_mistral': 978, 'n_tokens_neox': 904, 'n_words': 436}