This repository was archived by the owner on Nov 28, 2021. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 3
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.
- 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
- 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)
- Documentation generation via Blueprint
- Code generation
- Drop development server ideas
- Generate model and filter in the same file
See: https://github.com/anomaly/prestans-client/wiki/3.0-Design-Notes