Maison > développement back-end > Golang > 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
Libérer: 2024-02-11 08:54:08
avant
520 Les gens l'ont consulté

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" 
}
Copier après la connexion
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" 
     ]
 }
Copier après la connexion
"ques_ans": {
     "id": "1",
     "receiver.sid": "2743dfjfh87",
     "receiver.ques": [
         "Q1",
         "Q2",
         "Q3" 
     ] 
 }
Copier après la connexion
"ques_ans": {
     "receiver.ques_key": [
         "1",
         "2" 
     ],
     "receiver.ans_key": [
         "13",
         "20" 
     ] 
 }
Copier après la connexion

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
Copier après la connexion

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!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal