Удаленный метод не имеет примера в проводнике (Swagger), поскольку логин имеет - PullRequest
0 голосов
/ 03 ноября 2019

Насколько я понимаю, User / login - это встроенный удаленный метод. На проводнике (swagger) он выглядит со всеми необходимыми деталями:

enter image description here

но на моем удаленном методе у меня нет всей приятной информациитакой пример и многое другое:

enter image description here

Как я могу добавить Пример значения также для моего метода, который принимает Object

Вот мой JSON:

 "methods": {
"specifyGurdianPhone": {
  "accepts": [
    {
      "arg": "guardianPhone",
      "type": "Object",
      "required": true,
      "description": "{guardianPhone: \"+97255111111\"}",
      "http": {
        "source": "body"
      }
    }
  ],
  "returns": [
    {
      "arg": "success",
      "type": "Object",
      "root": true
    }
  ],
  "description": "",
  "http": {
    "verb": "post"
  }

1 Ответ

1 голос
/ 06 ноября 2019

Это потому, что ваш параметр и ответ имеют тип "объект". Swagger не знает, как это выглядит. Чтобы иметь такое представление, вам нужно указать имена моделей в качестве типа или описать возможные свойства одно за другим.

Example1:

{
   "specifyGurdianPhone": {
   "accepts": [
     {
       "arg": "guardianPhone",
       "type": "string", // !!! Now, swagger know the exact type of "guardianPhone" property
       "required": true
       "http": {
         "source": "form" // !!! Having the "form" here we say that it a property inside an object 
                          //     (it allows us to have the "string" type of the "object")
       }
     }
   ],
   "returns": [
     {
       "arg": "success",
       "type": "GuardianPhone", // !!! For example, let's return the full "GuardianPhone" instance
       "root": true
     }
   ],
   "description": "",
   "http": {
     "verb": "post"
   }
}

Example2:

 {
   "specifyGurdianPhone": {
   "accepts": [
     {
       "arg": "guardianPhone",
       "type": "object", 
       "modelName": "GuardianPhone" // !!! Another way to let swagger know the type of the body
                                    //     (the same will be true, if you make the type "GuardianPhone" instead of "object" and delete "modelName" property)
       "required": true
       "http": {
         "source": "body"
       }
     }
   ],
   "returns": [
     {
       ...
   ]
 }

Example3:

 {
   "specifyGurdianPhone": {
   "accepts": [
     {
       "arg": "guardianPhone",
       "type": "object", 
       "modelName": "GuardianPhone" // !!! Another way to let swagger know the type of the body
                                    //     (the same will be true, if you make the type "GuardianPhone" instead of "object" and delete "modelName" property)
       "required": true
       "http": {
         "source": "body"
       }
     }
   ],
   "returns": [
     {
       "arg": "success",

       // !!! Instead of a model name you can describe properties one by one, 
       //     but this trick will not work with arrays (it's true for "accepts" also)
       // !!! WARNING You need strong-remoting v3.15.0 or higher due to https://github.com/strongloop/loopback/issues/3717 for this approach
       "type": { 
         "id": {"type": "string", "description": "An id property"},
         "guardianPhone": {"type": "string"}
       },

       "root": true
     }
   ],
   "description": "",
   "http": {
     "verb": "post"
   }
 }
...