Можно ли создать собственный API без использования коннекторов в Oracle MCS?

Я хочу создать пользовательский API без использования соединителей. Я хочу предоставить свои данные, а затем получить к ним доступ на мобильном устройстве через пользовательский API.

"getLIST": {
  "PendingList": [
    {
      "TRANSACTION_ID": "1612342887",
      "TRANSACTION_STEP_ID": "2344",
      "SIT_NAME": "Certificate Request",
      "PERSON_ID": "3435",
      "FROM_USER": "Rahul",
      "STATUS": "Pending",
      "FUTURE1": null,
      "FUTURE2": null,
      "FUTURE3": null,
      "FUTURE4": null,
      "FUTURE5": null
    },{
      "TRANSACTION_ID": "161234887",
      "TRANSACTION_STEP_ID": "143234840",
      "SIT_NAME": "Certificate Request",
      "PERSON_ID": "3436",
      "FROM_USER": "Sashanka",
      "STATUS": "Pending",
      "FUTURE1": null,
      "FUTURE2": null,
      "FUTURE3": null,
      "FUTURE4": null,
      "FUTURE5": null
    },
]
}

Если я предоставлю вышеуказанную полезную нагрузку JSON в ответ и через этот пользовательский API "/mobile/customtest/getLIST/PendingList?PERSON_ID=3435", смогу ли я получить подробности

Является ли это возможным??


person Janaki Narayanan    schedule 09.01.2017    source источник
comment
Не могли бы вы уточнить ваше требование, пожалуйста? Когда вы говорите, что не хотите использовать коннектор, какое это имеет отношение к полезной нагрузке, которую вы описали? Вы просто хотите жестко закодировать ответ в своем пользовательском API, чтобы включить указанную выше полезную нагрузку, но хотите выполнить поиск в массиве JSON, где person_id=3435?   -  person Chris Muir    schedule 10.01.2017
comment
да... Я хочу жестко закодировать ответ и выполнить поиск в массиве JSON.   -  person Janaki Narayanan    schedule 10.01.2017
comment
Я не думаю, что это возможно. См. предложение Ананда загрузить ваши данные в таблицу MCS, а затем выполнить программный поиск с помощью вашего пользовательского API.   -  person Joe    schedule 10.01.2017
comment
Просто хочу знать, почему вы выбираете Custom Apis без соединителей?   -  person Arj 1411    schedule 17.01.2017


Ответы (3)


Абсолютно! Следуйте документам здесь и видео здесь. Хотя, да, мы обычно используем пользовательский API, чтобы действовать как оболочка для другого вызова службы через коннектор, вам не нужно этого делать. Если вы просто хотите вернуть фиксированную/статическую полезную нагрузку, вы можете добавить это как ответ на вызов ПОЛУЧИТЬ.

НО - если вы ожидаете поиска в массиве и т. д., то это больше работы и должно выполняться в службе - отсюда и необходимость в соединителе.

Инструкции здесь: добавьте основы (название API, тип носителя сообщения и краткое описание).

Определите конечную точку, задав ресурс и хотя бы один метод для него.

Установить безопасность доступа.

Протестируйте свою конечную точку после того, как вы определили хотя бы один ресурс. Чтобы полностью завершить свой API, используйте конструктор API, который поможет вам добавить необходимые компоненты для надежного API:

Предоставьте метаданные API (то есть основные атрибуты API, такие как отображаемое имя API, имя API и краткое описание) или, если у вас уже есть документ RAML, содержащий конфигурацию вашего API, вы можете загрузить его в дизайнер API. Вся информация (метаданные, ресурсы, методы и схема тела сообщения) извлекается из документа RAML и загружается в конструктор API, что позволяет быстро приступить к тестированию конечных точек или редактированию конфигурации API. Чтобы предоставить действительный файл RAML, см. RAML.

Добавьте один или несколько корневых и вложенных ресурсов.

Добавьте методы для работы с ресурсами.

Создайте схему для описания тела данных.

Протестируйте свои конечные точки во время разработки с помощью образцов данных и внесите необходимые изменения.

Разрешите анонимный доступ к вашему API или укажите, какие роли могут получить к нему доступ.

Добавьте документацию для вашего пользовательского API

person Joe    schedule 10.01.2017
comment
Насколько я понимаю, я мог бы сделать то же самое для ответа массива JSON ?? - person Janaki Narayanan; 10.01.2017

Чего хочет достичь OP, до сих пор неясно, но просто отвечая на вопрос о поиске жестко запрограммированного массива JSON и возвращении результата, следующий код показывает такой пример на основе массива «Сотрудники»:

module.exports = function(service) {

    var employees = [
          {
            "id": "103",
            "username": "rbarkhouse",
            "firstName": "Rick",
            "lastName": "Barkhouse"
          },
          {
            "id": "107",
            "username": "kbrown",
            "firstName": "Karen",
            "lastName": "Brown"
          },
          {
            "id": "108",
            "username": "ldavies",
            "firstName": "Larry",
            "lastName": "Davies"
          }
        ];

    service.get('/mobile/custom/hrapi/employee', function(req,res) {
        res.send(200, employees);
    });

    service.get('/mobile/custom/hrapi/employee/:id', function(req,res) {
        var id = req.params.id;

        var employee =
            employees.filter(function(el) { return el.id == id; });

        if (employee == null) {
            res.send(404);
        } else {
            res.send(200, employee[0]);
        }
    });
  };

Обратите внимание на использование функции «фильтр» массива сотрудников, где мы передаем анонимную функцию, способную выполнять поиск среди элементов сотрудников, возвращающих соответствие «:id», переданному в качестве параметра URL.

person Chris Muir    schedule 12.01.2017
comment
спасибо. Но я думаю, что я не могу следовать этому процессу для большого массива JSON, и поэтому я подумал об использовании управления базами данных в Oracle MCS. - person Janaki Narayanan; 17.01.2017

Если вы не хотите использовать соединители MCS, используйте платформу API, предоставляемую MCS. Вы можете создавать таблицы в MCS. Затем используйте Custom APIs для извлечения данных из таблиц.

person Arj 1411    schedule 10.01.2017
comment
OP все равно нужно будет загрузить таблицы с данными. Он не сможет искать статический JSON в пользовательском API. Документы для таблиц базы данных платформы находятся здесь: docs.oracle.com/en/cloud/paas/mobile-cloud/mcsua/ - person Joe; 10.01.2017
comment
Не понял, что ты сказал - person Arj 1411; 11.01.2017
comment
он должен хранить свои данные в API базы данных, а затем может искать их и возвращать результаты - ему не нужно использовать соединитель. Доступ к API БД осуществляется через вызовы REST. ТАКИМ ОБРАЗОМ, с его стороны потребуется какой-то нестандартный код, чтобы делать то, что он хочет. - person Joe; 11.01.2017