Создание простого API на основе JSON с использованием Node.js
Результаты API (Application Programming Interface) обычно используются приложениями, иногда для извлечения информации из своих огромных баз данных, проверки состояния определенных данных, а иногда они зависят от сторонних API для отображения дополнительной информации, связанной с пользователями.
Здесь мы создадим простой общедоступный Chemistry API на основе JSON, который можно использовать на любом языке программирования для отображения результатов.
Шаги по созданию API:
- Шаг 1. Установите Node.js по этой ссылке в зависимости от вашей операционной системы и системных требований.
- Шаг 2: Инициализируйте пустую папку, в которой вы будете создавать API. В этой папке создайте пустой файл JS с именем index.js.
- Шаг 3: Откройте командную строку и перейдите в созданный каталог с компакт-диска (путь к папке).
- Шаг 4: Введите
npm init
и выполните действия, отвечая на заданные вопросы.
Для создания Chemistry API нам потребуется создать пустой файл JSON и вставить данные из ссылки на данные химии. Теперь нам нужно включить несколько библиотек NodeJS и настроить порт для API.
var fs = require( 'fs' ); // json file with the data var data = fs.readFileSync( 'chemistry.json' ); var elements = JSON.parse(data); const express = require( "express" ); const app = express(); // To solve the cors issue const cors=require( 'cors' ); app.listen(process.env.PORT, () => console.log( "Server Start at the Port" )); app.use(express.static( 'public' )); app.use(cors()); |
Проектирование конечных точек API:
// when get request is made, alldata() is called app.get( '/elements' , alldata); function alldata(request, response) { // Returns all information about the elements response.send(elements); } |
Здесь «/ элементы» является конечной точкой, и когда запрос прибудете делается на API, в / элементов конечной точки, ALLDATA функция () вызывается. Теперь функция alldata () имеет два параметра (запрос и ответ). При использовании response.send () ответ возвращается пользователю.
app.get( "/elements/:element/" , searchElement); function searchElement(request, response) { var word = request.params.element; word = word.charAt(0).toUpperCase() + word.slice(1).toLowerCase(); if (elements[word]) { var reply = elements[word]; } else { var reply = { status: "Not Found" } } response.send(reply); } |
«/: Element /» - конечная точка переменной для запросов, касающихся любого конкретного элемента, например https://chemistrydata.herokuapp.com/elements/Hydrogen
Объединил все три раздела кода для создания файла index.js
Имя файла: index.js
var fs = require( 'fs' ); // json file with the data var data = fs.readFileSync( 'chemistry.json' ); var elements = JSON.parse(data); const express = require( "express" ); const app = express(); // To solve the cors issue const cors=require( 'cors' ); app.listen(process.env.PORT, () => console.log( "Server Start at the Port" )); app.use(express.static( 'public' )); app.use(cors()); // when get request is made, alldata() is called app.get( '/elements' , alldata); function alldata(request, response) { // Returns all information about the elements response.send(elements); } app.get( '/elements/:element/' , searchElement); function searchElement(request, response) { var word = request.params.element; word = word.charAt(0).toUpperCase() + word.slice(1).toLowerCase(); if (elements[word]) { var reply = elements[word]; } else { var reply = { status: "Not Found" } } response.send(reply); } |
Теперь вы все можете создать простой API на основе JSON, загрузить весь код в GitHub и разместить его на Heroku. Мы включили ссылку на репозиторий Github и документацию по API, не стесняйтесь исследовать проект.
Ссылка на репозиторий GitHub: https://github.com/Aanisha/ChemistryDataAPI
Документация по API: ссылка