Skip to content
This repository was archived by the owner on Nov 28, 2021. It is now read-only.

3.0 Design Notes

Bradley Mclain edited this page Oct 28, 2015 · 4 revisions

A Python 3 compatible ground up implementation of all features identified in Prestans 2.0.

New (must have)

  • Testsuite implementation for all components of the framework
  • Separation of parser and attribute filter packages from types
  • Formal implementation of blueprint (ways implemented as a dictionary, change this to a formal concept, allows client side utilities to use a formal object paradigm)
  • Lazy loading internal packages to allow independent use of types package
  • Cleaner exception handling and logging, standardised messaging in exceptions
  • Ensure that entire code base is linted

Wish List (nice to have)

  • Attribute filters should be aware of the model they originated from
  • Discussion on different response types for each code, consider stack traces
  • Uniform configuration using Class references not instances
  • Clean up code generation scripts
  • Restrict dynamic configuration of response template fields (via attribute filters)
  • Consistent implementation pattern for types allowing developers to implement custom types
  • Prestans defined way of declaring constants, client to generate constants as part of stubs
  • Better definition of Parameter Sets, consider formalising this as a construct on the client
  • Use Prestans client to build REST clients, consume REST services and use models parameters sets to parse the response and request payload
  • Validation checks conditional on related model fields, ie field A is only valid if it matches field B (Very difficult but awesome if we could achieve!)
  • Review the behaviour of default values and request attribute filters
  • Fix exception catching for python properties (long standing issue)

CLI

  • Documentation generation via Blueprint
  • Code generation
  • Drop development server ideas
  • Generate model and filter in the same file

Client

See: https://github.com/anomaly/prestans-client/wiki/3.0-Design-Notes

Clone this wiki locally