JSON schema invalid?

My attempts at importing the JSON schema for my farmOS instance (from vdl.farmos.net/api/schema) to Postman have failed, reportedly because my “farmOSschema.json” file (text appended below) is not recognised as valid. Not a very informative error message, unfortunately… So if anyone can provide any further insight about this, i’d be most grateful!

8<------(snip)------>8

{
“$schema”: “https://json-schema.org/draft/2019-09/hyper-schema”,
“$id”: “https://vdl.farmos.net/api/schema”,
“allOf”: [
{
“$ref”: “https://jsonapi.org/schema#/definitions/success
},
{
“type”: “object”,
“links”: [
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Animal assets”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/asset/animal/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/asset–animal/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Equipment assets”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/asset/equipment/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/asset–equipment/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Group assets”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/asset/group/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/asset–group/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Land assets”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/asset/land/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/asset–land/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Plant assets”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/asset/plant/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/asset–plant/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Sensor assets”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/asset/sensor/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/asset–sensor/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Structure assets”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/asset/structure/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/asset–structure/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Asset types”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/asset_type/asset_type/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/asset_type–asset_type/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Data stream types”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/data_stream_type/data_stream_type/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/data_stream_type–data_stream_type/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Basic Data streams”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/data_stream/basic/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/data_stream–basic/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Entity browser entities”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/entity_browser/entity_browser/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/entity_browser–entity_browser/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Flag entities”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/flag/flag/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/flag–flag/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Id tag type entities”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/tag_type/tag_type/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/tag_type–tag_type/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Land type entities”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/land_type/land_type/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/land_type–land_type/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Map type entities”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/map_type/map_type/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/map_type–map_type/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Layer style entities”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/layer_style/layer_style/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/layer_style–layer_style/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Map behavior entities”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/map_behavior/map_behavior/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/map_behavior–map_behavior/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Structure type entities”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/structure_type/structure_type/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/structure_type–structure_type/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Files”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/file/file/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/file–file/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Log types”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/log_type/log_type/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/log_type–log_type/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Activity logs”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/log/activity/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/log–activity/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Birth logs”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/log/birth/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/log–birth/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Harvest logs”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/log/harvest/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/log–harvest/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Input logs”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/log/input/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/log–input/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Maintenance logs”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/log/maintenance/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/log–maintenance/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Observation logs”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/log/observation/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/log–observation/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Seeding logs”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/log/seeding/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/log–seeding/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Transplanting logs”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/log/transplanting/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/log–transplanting/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Material quantities”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/quantity/material/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/quantity–material/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Standard quantities”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/quantity/standard/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/quantity–standard/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Quantity types”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/quantity_type/quantity_type/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/quantity_type–quantity_type/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Vocabularies”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/taxonomy_vocabulary/taxonomy_vocabulary/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/taxonomy_vocabulary–taxonomy_vocabulary/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Animal types taxonomy terms”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/taxonomy_term/animal_type/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/taxonomy_term–animal_type/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Crop family taxonomy terms”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/taxonomy_term/crop_family/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/taxonomy_term–crop_family/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Log categories taxonomy terms”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/taxonomy_term/log_category/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/taxonomy_term–log_category/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Material types taxonomy terms”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/taxonomy_term/material_type/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/taxonomy_term–material_type/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Plant types taxonomy terms”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/taxonomy_term/plant_type/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/taxonomy_term–plant_type/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Seasons taxonomy terms”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/taxonomy_term/season/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/taxonomy_term–season/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Units taxonomy terms”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/taxonomy_term/unit/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/taxonomy_term–unit/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Users”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/user/user/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/user–user/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Roles”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/user_role/user_role/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/user_role–user_role/href”
},
“templateRequired”: [
“instanceHref”
]
}
]
}
]
}

How was this generated @walt?
none of my editors like the quotation mark characters but if I do a find and replace it looks fine.

{
"schema": "https://json-schema.org/draft/2019-09/hyper-schema",
"$id": "https://vdl.farmos.net/api/schema",
"allOf": [
{
"$ref": "https://jsonapi.org/schema#/definitions/success"
},
{
"type": "object",
"links": [
{
"href": "{instanceHref}",
"rel": "related",
"title": "Animal assets",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/asset/animal/collection/schema",
"templatePointers": {
"instanceHref": "/links/asset–animal/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Equipment assets",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/asset/equipment/collection/schema",
"templatePointers": {
"instanceHref": "/links/asset–equipment/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Group assets",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/asset/group/collection/schema",
"templatePointers": {
"instanceHref": "/links/asset–group/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Land assets",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/asset/land/collection/schema",
"templatePointers": {
"instanceHref": "/links/asset–land/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Plant assets",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/asset/plant/collection/schema",
"templatePointers": {
"instanceHref": "/links/asset–plant/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Sensor assets",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/asset/sensor/collection/schema",
"templatePointers": {
"instanceHref": "/links/asset–sensor/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Structure assets",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/asset/structure/collection/schema",
"templatePointers": {
"instanceHref": "/links/asset–structure/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Asset types",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/asset_type/asset_type/collection/schema",
"templatePointers": {
"instanceHref": "/links/asset_type–asset_type/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Data stream types",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/data_stream_type/data_stream_type/collection/schema",
"templatePointers": {
"instanceHref": "/links/data_stream_type–data_stream_type/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Basic Data streams",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/data_stream/basic/collection/schema",
"templatePointers": {
"instanceHref": "/links/data_stream–basic/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Entity browser entities",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/entity_browser/entity_browser/collection/schema",
"templatePointers": {
"instanceHref": "/links/entity_browser–entity_browser/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Flag entities",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/flag/flag/collection/schema",
"templatePointers": {
"instanceHref": "/links/flag–flag/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Id tag type entities",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/tag_type/tag_type/collection/schema",
"templatePointers": {
"instanceHref": "/links/tag_type–tag_type/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Land type entities",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/land_type/land_type/collection/schema",
"templatePointers": {
"instanceHref": "/links/land_type–land_type/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Map type entities",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/map_type/map_type/collection/schema",
"templatePointers": {
"instanceHref": "/links/map_type–map_type/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Layer style entities",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/layer_style/layer_style/collection/schema",
"templatePointers": {
"instanceHref": "/links/layer_style–layer_style/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Map behavior entities",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/map_behavior/map_behavior/collection/schema",
"templatePointers": {
"instanceHref": "/links/map_behavior–map_behavior/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Structure type entities",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/structure_type/structure_type/collection/schema",
"templatePointers": {
"instanceHref": "/links/structure_type–structure_type/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Files",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/file/file/collection/schema",
"templatePointers": {
"instanceHref": "/links/file–file/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Log types",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/log_type/log_type/collection/schema",
"templatePointers": {
"instanceHref": "/links/log_type–log_type/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Activity logs",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/log/activity/collection/schema",
"templatePointers": {
"instanceHref": "/links/log–activity/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Birth logs",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/log/birth/collection/schema",
"templatePointers": {
"instanceHref": "/links/log–birth/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Harvest logs",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/log/harvest/collection/schema",
"templatePointers": {
"instanceHref": "/links/log–harvest/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Input logs",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/log/input/collection/schema",
"templatePointers": {
"instanceHref": "/links/log–input/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Maintenance logs",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/log/maintenance/collection/schema",
"templatePointers": {
"instanceHref": "/links/log–maintenance/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Observation logs",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/log/observation/collection/schema",
"templatePointers": {
"instanceHref": "/links/log–observation/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Seeding logs",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/log/seeding/collection/schema",
"templatePointers": {
"instanceHref": "/links/log–seeding/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Transplanting logs",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/log/transplanting/collection/schema",
"templatePointers": {
"instanceHref": "/links/log–transplanting/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Material quantities",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/quantity/material/collection/schema",
"templatePointers": {
"instanceHref": "/links/quantity–material/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Standard quantities",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/quantity/standard/collection/schema",
"templatePointers": {
"instanceHref": "/links/quantity–standard/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Quantity types",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/quantity_type/quantity_type/collection/schema",
"templatePointers": {
"instanceHref": "/links/quantity_type–quantity_type/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Vocabularies",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/taxonomy_vocabulary/taxonomy_vocabulary/collection/schema",
"templatePointers": {
"instanceHref": "/links/taxonomy_vocabulary–taxonomy_vocabulary/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Animal types taxonomy terms",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/taxonomy_term/animal_type/collection/schema",
"templatePointers": {
"instanceHref": "/links/taxonomy_term–animal_type/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Crop family taxonomy terms",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/taxonomy_term/crop_family/collection/schema",
"templatePointers": {
"instanceHref": "/links/taxonomy_term–crop_family/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Log categories taxonomy terms",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/taxonomy_term/log_category/collection/schema",
"templatePointers": {
"instanceHref": "/links/taxonomy_term–log_category/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Material types taxonomy terms",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/taxonomy_term/material_type/collection/schema",
"templatePointers": {
"instanceHref": "/links/taxonomy_term–material_type/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Plant types taxonomy terms",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/taxonomy_term/plant_type/collection/schema",
"templatePointers": {
"instanceHref": "/links/taxonomy_term–plant_type/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Seasons taxonomy terms",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/taxonomy_term/season/collection/schema",
"templatePointers": {
"instanceHref": "/links/taxonomy_term–season/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Units taxonomy terms",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/taxonomy_term/unit/collection/schema",
"templatePointers": {
"instanceHref": "/links/taxonomy_term–unit/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Users",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/user/user/collection/schema",
"templatePointers": {
"instanceHref": "/links/user–user/href"
},
"templateRequired": [
"instanceHref"
]
},
{
"href": "{instanceHref}",
"rel": "related",
"title": "Roles",
"targetMediaType": "application/vnd.api+json",
"targetSchema": "https://vdl.farmos.net/api/user_role/user_role/collection/schema",
"templatePointers": {
"instanceHref": "/links/user_role–user_role/href"
},
"templateRequired": [
"instanceHref"
]
}
]
}
]
}

Here is your original.
notice the synatax highlighter does not recognise it as json.

{
“$schema”: “https://json-schema.org/draft/2019-09/hyper-schema”,
“$id”: “https://vdl.farmos.net/api/schema”,
“allOf”: [
{
“$ref”: “https://jsonapi.org/schema#/definitions/success”
},
{
“type”: “object”,
“links”: [
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Animal assets”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/asset/animal/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/asset–animal/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Equipment assets”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/asset/equipment/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/asset–equipment/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Group assets”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/asset/group/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/asset–group/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Land assets”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/asset/land/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/asset–land/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Plant assets”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/asset/plant/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/asset–plant/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Sensor assets”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/asset/sensor/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/asset–sensor/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Structure assets”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/asset/structure/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/asset–structure/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Asset types”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/asset_type/asset_type/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/asset_type–asset_type/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Data stream types”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/data_stream_type/data_stream_type/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/data_stream_type–data_stream_type/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Basic Data streams”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/data_stream/basic/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/data_stream–basic/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Entity browser entities”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/entity_browser/entity_browser/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/entity_browser–entity_browser/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Flag entities”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/flag/flag/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/flag–flag/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Id tag type entities”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/tag_type/tag_type/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/tag_type–tag_type/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Land type entities”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/land_type/land_type/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/land_type–land_type/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Map type entities”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/map_type/map_type/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/map_type–map_type/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Layer style entities”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/layer_style/layer_style/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/layer_style–layer_style/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Map behavior entities”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/map_behavior/map_behavior/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/map_behavior–map_behavior/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Structure type entities”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/structure_type/structure_type/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/structure_type–structure_type/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Files”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/file/file/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/file–file/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Log types”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/log_type/log_type/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/log_type–log_type/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Activity logs”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/log/activity/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/log–activity/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Birth logs”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/log/birth/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/log–birth/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Harvest logs”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/log/harvest/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/log–harvest/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Input logs”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/log/input/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/log–input/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Maintenance logs”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/log/maintenance/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/log–maintenance/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Observation logs”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/log/observation/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/log–observation/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Seeding logs”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/log/seeding/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/log–seeding/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Transplanting logs”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/log/transplanting/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/log–transplanting/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Material quantities”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/quantity/material/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/quantity–material/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Standard quantities”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/quantity/standard/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/quantity–standard/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Quantity types”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/quantity_type/quantity_type/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/quantity_type–quantity_type/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Vocabularies”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/taxonomy_vocabulary/taxonomy_vocabulary/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/taxonomy_vocabulary–taxonomy_vocabulary/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Animal types taxonomy terms”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/taxonomy_term/animal_type/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/taxonomy_term–animal_type/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Crop family taxonomy terms”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/taxonomy_term/crop_family/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/taxonomy_term–crop_family/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Log categories taxonomy terms”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/taxonomy_term/log_category/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/taxonomy_term–log_category/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Material types taxonomy terms”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/taxonomy_term/material_type/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/taxonomy_term–material_type/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Plant types taxonomy terms”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/taxonomy_term/plant_type/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/taxonomy_term–plant_type/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Seasons taxonomy terms”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/taxonomy_term/season/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/taxonomy_term–season/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Units taxonomy terms”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/taxonomy_term/unit/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/taxonomy_term–unit/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Users”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/user/user/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/user–user/href”
},
“templateRequired”: [
“instanceHref”
]
},
{
“href”: “{instanceHref}”,
“rel”: “related”,
“title”: “Roles”,
“targetMediaType”: “application/vnd.api+json”,
“targetSchema”: “https://vdl.farmos.net/api/user_role/user_role/collection/schema”,
“templatePointers”: {
“instanceHref”: “/links/user_role–user_role/href”
},
“templateRequired”: [
“instanceHref”
]
}
]
}
]
}

maybe you saved / modified it in some word processor that changed the formatting?

Via GET request against {{host}}/api/schema. /w

No: i just copy/pasted the response from server into my Sublime Text editor. Indentation was lost on copy/paste into Discourse, but i’ve pasted the same copied text into this validator, and it validates perfectly against the “Schema Draft 2019-09” spec (top selection from pulldown list of spec’s -see attached image).

Ahh Ok…
but is this schema supported by postman?

If I try importing the raw text it returns more errors as its not a supported schema and I don’t see an option for json schema

1 Like

That’s what i’m trying to find out, now that i have it on good authority that this JSON schema is valid.

Though i can find nothing in the docs to either confirm or deny it, i gather from recent podcasts by both Kin Lane (API Evangelist) and Arnaud Lauret (OpenAPI Technical Lead) that Postman plays nicely with JSON Schema. In fact, OpenAPI 3 Specification is built on the foundation of JSON Schema, such that “every time you will need to describe data in OpenAPI” says Arnaud Lauret, “you will use json schema to do that.”

By the way, Ed: as i recently discovered this Flows feature in Postman, it reminded me very much of your developments in NodeRED -another Visual Programming Environment, in which you can chain blocks of code (requests, variables, what have you) together in workflows, even though they come from different environments. Maybe worth a look-see, if you should ever get bored of NodeRED :slight_smile:

1 Like

In fact, OpenAPI 3 Specification is built on the foundation of JSON Schema, such that “every time you will need to describe data in OpenAPI” says Arnaud Lauret, “you will use json schema to do that.”

An important distinction here: every OpenAPI document is a JSON Schema document, but not vice versa. It’s just that OpenAPI uses JSON Schema for its structure, but expects certain properties to make it an OpenAPI doc. Postman is expecting an OpenAPI document

3 Likes

Is this a deep incompatibility, i wonder, or is it a simpler matter to fix, like maybe just some frontmatter to be added in?

It’s a larger issue, yea. This drupal module is what provides an OpenAPI doc: OpenAPI | Drupal.org

We evaluated it a while back and saw some issues. But as I recall it was largely with the OpenAPI client libraries like Swagger UI for OpenAPI UI | Drupal.org and ReDoc for OpenAPI UI | Drupal.org.

Perhaps the openapi module itself is better? It would be worth checking that out. @mstenta and I chatted recently with a maintainer of some lower-level schema modules tangential to all this… it sounds like there may be an effort forming to fix some of the common lower level issues all of these modules are trying to solve

More context: Introduce "schematic" normalizers [#3031367] | Drupal.org

3 Likes

Not that i understood it, but the chat transcript embedded in this issue discussion surfaced this link to an article that suggests to me: these diffs in the two specs are so trifling, the resolution must be practically at hand. Is that a fair takeaway from this?

I did some testing with OpenAPI modules myself as I found swagger nodes that I thought may have been useful in Node-Red, probably not enough to do a Propper evaluation though as I abandoned trying to make farmOS fit these nodes in favour creating nodes specifically for farmOS. farmOS, NodeRed, Home Assistant etc - #27 by Farmer-Ed

The very first thing Postman does when you try to load the schema json is read the schema type from the first line in the json so it fails immediately as its an unrecognized type. Perhaps some sort of plugin/addon is available or could be made to add extra schema?

I’ve been aware of this feature for a while, there are a few other similar tools out there, but I find Node-Red has the biggest community support.

1 Like