Maison  >  Article  >  développement back-end  >  Comment le type de données datatypes.JSON de go est-il décrit dans la spécification openAPI ?

Comment le type de données datatypes.JSON de go est-il décrit dans la spécification openAPI ?

WBOY
WBOYavant
2024-02-11 08:54:08430parcourir

Comment le type de données datatypes.JSON de go est-il décrit dans la spécification openAPI ?

L'éditeur PHP Baicao vous présente comment le type de données datatypes.JSON de go est décrit dans la spécification openAPI. Dans la spécification openAPI, Schema Object est utilisé pour décrire les types de données. Pour le type de données datatypes.JSON en go, il peut être décrit en utilisant le type comme "string" et le format comme "json". Cela vous permet de spécifier explicitement le type de données du champ sous forme de chaîne au format JSON. De plus, vous pouvez également utiliser le champ d'exemple pour fournir des exemples de valeurs afin d'aider les développeurs à mieux comprendre la structure et l'utilisation de ce type de données. Grâce à une utilisation raisonnable de la spécification openAPI, le type de données datatypes.JSON en cours peut être décrit avec précision, fournissant aux développeurs des documents d'interface clairs et des définitions de types de données.

Contenu de la question

J'ai un projet de golang-gin. Il existe une telle structure :

type Value struct { 
    gorm.Model 
    QuesAns       datatypes.JSON json:"ques_ans" 
}
Le champ

QuesAns doit contenir un JSON de l'un de ces trois types.

"ques_ans": {
    "receiver.ques": [
         "Q1",
         "Q2"
     ], 
    "receiver.ans": [
         "Ans1",
         "Ans2",
         "Ans3" 
     ]
 }
"ques_ans": {
     "id": "1",
     "receiver.sid": "2743dfjfh87",
     "receiver.ques": [
         "Q1",
         "Q2",
         "Q3" 
     ] 
 }
"ques_ans": {
     "receiver.ques_key": [
         "1",
         "2" 
     ],
     "receiver.ans_key": [
         "13",
         "20" 
     ] 
 }

Comment décririez-vous l’intégration de la spécification Open API ?

J'ai essayé plusieurs types mais je n'ai pas pu tous les synchroniser car JSON peut être de types différents et seuls ces trois types fonctionnent.

Solution

D'accord ! Voici comment je l'ai résolu :

components:
  schemas:
    Value:
      type: object
      properties:
        ques_ans:
          oneOf:
            - $ref: '#/components/schemas/Type1'
            - $ref: '#/components/schemas/Type2'
            - $ref: '#/components/schemas/Type3'
    Type1:
      type: object
      properties:
        receiver.ques:
          type: array
          items:
            type: string
        receiver.ans:
          type: array
          items:
            type: string
    Type2:
      type: object
      properties:
        id:
          type: string
        receiver.sid:
           type: string
        receiver.ques:
          type: array
          items:
            type: string
    Type3:
      type: object
      properties:
        receiver.ques_key:
          type: array
          items:
            type: string
        receiver.ans_key:
          type: array
          items:
            type: string

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer