Comments (7)
schema annotations (title, description, default, readOnly, writeOnly, examples) are commonly used for documentation. they don't participate in document validation. In order to avoid memory, they are not included in compiled schema definition.
Could you explain the use case, why you need them...
from jsonschema.
That's fair. My use case is code generation. We use json schema to validate the transport payload of messages between micro services and when a golang service receives a message I want to be able to use strong typing rather than empty struct maps.
I was able to generate the code using this library but I was hoping to add docstrings based on json schema descriptions.
from jsonschema.
@santhosh-tekuri annotations are increasingly important in JSON Schema, and will become more so. While it's definitely fine to implement just validation (a formal process of annotation collection only really became defined in draft-07 and is getting refined for draft-08, but is not a required feature), pretty much every usage of JSON Schema beyond validation relies on it.
I assume that most implementations will either choose to optimize for validation or will provide full functionality including annotation collection. So perhaps just a clear statement as to which you intend this project to be in your README would help.
from jsonschema.
@maroux I understand that description can be used as doc strings in generated go structures. I am interested in your project. if it is open-source please share the link.
@handrews in my old project i used RAML in internet devices. these devices has less RAM. so i have to traverse compiled RAML and make all annotations nil, to reduce memory footprint. So I did not keep annotations in compiled schema.
I will add Compiler.ExtractAnnotations = true/false
flag which defaults to false
, so that developers who do not need annotations can still discard them in compiled schema.
from jsonschema.
@santhosh-tekuri I don't have it completed yet - still a WIP evaluating which json schema library makes most sense for this project. Seeing the difference between docstring vs no docstring its pretty clear that docstrings are a deal breaker for this particular use case.
I like the extract annotations suggestion.
from jsonschema.
json-schema-org/json-schema-spec#530 if you want to give feedback on the whole annotations collection process for the next draft.
from jsonschema.
wow, thanks for the quick update!
from jsonschema.
Related Issues (20)
- Draft 2020-12 and array's "items" HOT 2
- Can add `Loader` , give schema and `[]byte` , parse to `map` or `struct` ? HOT 1
- pre-commit hook HOT 3
- request: validate examples HOT 1
- Can not install v5.2.0 HOT 7
- False positive error for a valid regex pattern HOT 1
- invalid jsonType: time.Time HOT 3
- Compiler short circuits when validating schemas, not providing the full list of errors
- Extension.Validate provides data in inconsistent order HOT 1
- Getting property name when compiling and validating user-defined keyword via extensions HOT 5
- Feature request: Pass custom compiler into "convenience" functions like CompileString HOT 2
- Performance drop when schema has "uniqueItems" set to true HOT 7
- `format` field of json schemas is not being validated HOT 1
- CompileString - stat .: permission denied HOT 1
- How can I validate to Python re flavor regex? HOT 4
- Proposal: Add Method to Generate Go Types from JSON Schema HOT 1
- Error when loading valid draft7 json schema HOT 2
- Validating json with json-schema HOT 4
- Draft2020 accepts invalid email address. HOT 5
- Support for $defs and definition keyword in Schema object. HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jsonschema.