Sobes.tech
Junior

Ի՞նչ է JSON սխեման։

sobes.tech AI

Պատասխան AI-ից

JSON շեմը (JSON Schema) — դա JSON-ի վրա հիմնված լեքսիկական ստանդարտ է, որը նկարագրում է տվյալների կառուցվածքը և սահմանափակումները: Այն թույլ է տալիս վավերացնել, նկարագրել և փաստաթղթավորել JSON տվյալները:

Հիմնական նպատակները՝

  • Վավերացում: Ստուգել, արդյոք JSON օրինակն համապատասխանում է որոշված կառուցվածքին:
  • Փաստաթղթավորում: JSON տվյալների ձևաչափի նկարագրությունը:
  • Հարաբերակցություն: Մետադատների փոխանակում համակարգերի միջև:

JSON շեմի հիմնական բաղադրիչները՝

  • Տվյալների տեսակներ: string, number, integer, boolean, object, array, null:
  • Սահմանափակման հիմնական բառեր:
    • type: Ապահովվող տվյալների տեսակ:
    • properties: Օբյեկտի հատկությունների նկարագրությունը:
    • required: Պարտադիր հատկությունների ցանկ:
    • items: Աղյուսակի տարրերի նկարագրությունը:
    • minLength/maxLength: Տողերի երկարության սահմանափակումներ:
    • minimum/maximum: Թվերի սահմանափակումներ:
    • pattern: Տողի համար ռեգուլյար արտահայտություն:
    • enum: Միջնորդված արժեքների ցանկ:
    • allOf/anyOf/oneOf/not: Լոգիկական կոմբինացիաներ:
  • Մետադատների հիմնական բառեր:
    • title: Շեմի կարճ անվանում:
    • description: Շեմի մանրամասն նկարագրություն:
    • default: Դեպի կանխադրված արժեք:

JSON շեմի օրինակ՝

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "description": "Օգտագործողի եզակի նույնականիչ"
    },
    "username": {
      "type": "string",
      "minLength": 3
    },
    "isActive": {
      "type": "boolean",
      "default": true
    }
  },
  "required": [
    "id",
    "username"
  ]
}

Վալիդային JSON տվյալների օրինակ՝

{
  "id": 123,
  "username": "testuser",
  "isActive": false
}

Անվավեր JSON տվյալների օրինակ՝

{
  "id": "abc" // Անվավեր տեսակ
  // Պակասում է պարտադիր դաշտը "username"
}

JSON շեմի օգտագործում QA ավտոմատացման մեջ՝

  • API պատասխանների վավերացում: Ստուգել, արդյոք JSON պատասխանները համապատասխանում են սահմանված ձևաչափին:
  • Հայցումների վավերացում: Ստուգել մուտքային JSON տվյալները նախքան դրանց մշակումը:
  • Թեստային տվյալների սերունդ: Շեմի օգտագործում՝ վավեր (կամ ոչ վավեր) թեստային օրինակներ ստեղծելու համար:
  • Փաստաթղթավորում: Ավտոմատ կերպով պահպանվող API փաստաթղթավորում:

Կան գրադարաններ տարբեր ծրագրավորման լեզուներով JSON շեմների աշխատանքի համար (օրինակ՝ jsonschema Python-ի համար, json-schema-validator Java-ի համար):