All Projects → ditojs → Dito

ditojs / Dito

Licence: mit
Dito.js is a declarative and modern web framework with a focus on API driven development, based on Objection.js, Koa.js and Vue.js – Released in 2018 under the MIT license, with support by Lineto.com

Programming Languages

javascript
184084 projects - #8 most used programming language
declarative
70 projects

Projects that are alternatives of or similar to Dito

Smoke
💨 Simple yet powerful file-based mock server with recording abilities
Stars: ✭ 142 (+222.73%)
Mutual labels:  api, rest, json, server
Cppwebframework
​The C++ Web Framework (CWF) is a MVC web framework, Open Source, under MIT License, using C++ with Qt to be used in the development of web applications.
Stars: ✭ 348 (+690.91%)
Mutual labels:  rest, json, server
Apicache
Simple API-caching middleware for Express/Node.
Stars: ✭ 957 (+2075%)
Mutual labels:  api, rest, json
Zerocode
A community-developed, free, open source, microservices API automation and load testing framework built using JUnit core runners for Http REST, SOAP, Security, Database, Kafka and much more. Zerocode Open Source enables you to create, change, orchestrate and maintain your automated test cases declaratively with absolute ease.
Stars: ✭ 482 (+995.45%)
Mutual labels:  api, rest, json
Httpie
As easy as /aitch-tee-tee-pie/ 🥧 Modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more. https://twitter.com/httpie
Stars: ✭ 53,052 (+120472.73%)
Mutual labels:  api, rest, json
Kanary
A minimalist web framework for building REST APIs in Kotlin/Java.
Stars: ✭ 319 (+625%)
Mutual labels:  api, rest, server
Koa Rest Api Boilerplate
💯 Boilerplate for Node.js Koa RESTful API application with Docker, Swagger, Jest, CodeCov and CircleCI
Stars: ✭ 420 (+854.55%)
Mutual labels:  api, rest, koa
Horaires Ratp Api
Webservice pour les horaires et trafic RATP en temps réel
Stars: ✭ 232 (+427.27%)
Mutual labels:  api, rest, json
Jikan
Unofficial MyAnimeList PHP+REST API which provides functions other than the official API
Stars: ✭ 531 (+1106.82%)
Mutual labels:  api, rest, json
Spyke
Interact with REST services in an ActiveRecord-like manner
Stars: ✭ 591 (+1243.18%)
Mutual labels:  api, rest, json
Ponzu
Headless CMS with automatic JSON API. Featuring auto-HTTPS from Let's Encrypt, HTTP/2 Server Push, and flexible server framework written in Go.
Stars: ✭ 5,373 (+12111.36%)
Mutual labels:  api, json, server
Http Fake Backend
Build a fake backend by providing the content of JSON files or JavaScript objects through configurable routes.
Stars: ✭ 253 (+475%)
Mutual labels:  api, rest, json
Flaresolverr
Proxy server to bypass Cloudflare protection
Stars: ✭ 241 (+447.73%)
Mutual labels:  api, rest, server
Api
HeadHunter API: документация и библиотеки
Stars: ✭ 324 (+636.36%)
Mutual labels:  api, rest, json
Mockoon
Mockoon is the easiest and quickest way to run mock APIs locally. No remote deployment, no account required, open source.
Stars: ✭ 3,448 (+7736.36%)
Mutual labels:  api, rest, server
Ngrest
Fast and easy C++ RESTful WebServices framework
Stars: ✭ 357 (+711.36%)
Mutual labels:  rest, json, server
Deno Drash
A REST microframework for Deno's HTTP server with zero 3rd party dependencies.
Stars: ✭ 795 (+1706.82%)
Mutual labels:  api, rest, server
Jsonapi Utils
Build JSON API-compliant APIs on Rails with no (or less) learning curve.
Stars: ✭ 191 (+334.09%)
Mutual labels:  api, rest, json
Flask Restplus
Fully featured framework for fast, easy and documented API development with Flask
Stars: ✭ 2,585 (+5775%)
Mutual labels:  api, rest, json
Networking
⚡️ Elegantly connect to a REST JSON Api. URLSession + Combine + Decodable + Generics = <3
Stars: ✭ 499 (+1034.09%)
Mutual labels:  api, rest, json

Dito.js

Dito.js is a declarative and modern web framework with a focus on API driven development, based on Koa.js, Objection.js and Vue.js

Dito.js consists of two main components: Dito.js Server, providing all classes and methods to build the server architecture, and Dito.js Admin, a Vue.js library that can be used to build views and forms for administration of the Dito.js models in a very efficient fashion.

Both components share the key philosophy of the Dito.js framework: The use of declarative descriptions not only of the data structures themselves (the models), but also of the way they are remotely interacted with (the controllers), as well as the way they are edited (the admin views and forms).

This is then also the reason for the name Dito.js itself:

Ditto originally comes from the Latin word dictus, "having been said," the past participle of the verb dīcere, "to say." https://www.thefreedictionary.com/ditto

Dito.js was created by Jürg Lehni and released in 2018 under the MIT license, with support by Lineto.com.

Structuring a Dito.js Application

Unlike other frameworks, Dito.js is not opinionated about its folder structures and file naming, and does not deduce any information from such structures. With the exception of the creation of migration files, there aren't any generators that automatically create files for you.

There is however a recommended way to structure a Dito.js application, by dividing it into the following folder structure:

  • src/server: This folder contains the admin Dito.js Server app, along with all models and controllers in sub-folders:
    • src/server/models: The place where for the model classes.
    • src/server/controllers: The place for the controller classes.
  • src/admin: This folder contains a declarations of all admin views and forms
  • src/config: The application configuration files.
  • migrations: The folder holding all migration files.
  • seeds: The folder holding all seeds files.

This structure will be explained in more detail in the documentation of each these aspects separately:

Setting up package.json for a Dito.js Application

Dito.js server comes with its own CLI program, but it is rare to call it directly: Normally you simply set up a set of package.json scripts through which a selection of predefined tasks are executed:

"scripts": {
  "console": "dito console src/server/app",
  "db:seed": "dito db:seed src/server/app",
  "db:create_migration": "dito db:create_migration src/server/app",
  "db:migrate": "dito db:migrate src/config",
  "db:rollback": "dito db:rollback src/config",
  "db:reset": "dito db:reset src/config"
}

Note that in order to work, each of these scripts require either the path to the application, or the path to the application's configuration, as specified above. Here a brief description of each script's purpose:

  • yarn console: Starts an interactive Read-Eval-Print-Loop console in which all Dito.js models can be directly used.
  • yarn db:seed: Seeds the configured database with the data provided in seeds. See Seeds for more information.
  • yarn db:create_migration: Creates migration files for the specified models. See Migrations for more information.
  • yarn db:migrate: Migrates to the latest state of migrations. See Migrations for more information.
  • yarn db:rollback: Rolls back the last batch of applied migrations. See Migrations for more information.
  • yarn db:reset: Resets the database by rolling back all applied migrations, and then reapplying all available migrations. See Migrations for more information.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].