Создание простого API на основе JSON с использованием Node.js

Опубликовано: 4 Августа, 2021

Результаты 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: ссылка