Code Monkey home page Code Monkey logo

dto-layer-generator's Introduction

dto-layer-generator

Generate the DTO (data transfer object) layer for your code - language agnostic by using plugins

WORK IN PROGRESS!!!

Both the code and the documentation is a work in progress.

This is still a work in progress. The aim of this package is to have a DTO-definition that can be used to generate code for specific languages (supported by using plugins).

See the example YAML:

name: Employee
url: /employees
fields:
- name: Id
  type: int64
- name: Name
  type: string
- name: EmployeeNumber
  type: string
- name: Employer
  type: object
  fields:
  - name: Id
    type: int64
  - name: Name
    type: string
  - name: Department
    type: string
- name: Projects
  type: objectarray
  fields:
  - name: Id
    type: int64
  - name: Name
    type: string

This would generate the go struct:

type Employee struct {
	Id             int64
	Name           string
	EmployeeNumber string
	Employer       struct {
		Id         int64
		Name       string
		Department string
	}
	Projects []struct {
		Id   int64
		Name string
	}
}

The long-term plan is to generate code for the definition the same as protocol buffers. But instead actually be "human-readable". So you will be able to define this DTO and have for instance the java/golang backend and javascript front-end code generated to do the send/receive marshaling.

Because it will generate "type-safe" code and not use reflection, we will also get compile-time safety.

dto-layer-generator's People

Contributors

francoishill avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.