Hướng dẫn does mongodb support rest api? - mongodb có hỗ trợ api phần còn lại không?

Hướng dẫn does mongodb support rest api? - mongodb có hỗ trợ api phần còn lại không?

Trình điều khiển API VS giống như REST

Cách phổ biến nhất để truy cập dữ liệu từ các dự án của bạn theo truyền thống là sử dụng trình điều khiển. MongoDB có trình điều khiển cho nhiều ngôn ngữ lập trình khác nhau. Chúng cho phép bạn gọi các chức năng khác nhau, bao gồm bao gồm các hoạt động tạo, đọc, cập nhật, xóa (CRUD), từ trong dự án của bạn bằng ngôn ngữ bạn chọn.

Chúng tôi có nhiều bài viết về cách thức dậy và chạy bằng trình điều khiển MongoDB cho ngôn ngữ bạn chọn. Vì vậy, nếu bạn muốn sử dụng trình điều khiển, đây vẫn là một tùy chọn hợp lệ.

Dưới đây là danh sách một số hướng dẫn hiện có sử dụng trình điều khiển hiện tại, có khả năng trong ngôn ngữ/khung của bạn lựa chọn:

  • Express.js và MongoDB REST API Hướng dẫn
  • Cách sử dụng Mern Stack: Hướng dẫn đầy đủ
  • Tích hợp TypeScript với Hướng dẫn MongoDB
  • Cách sử dụng Atlas MongoDB với .NET/.NET Core
  • Xây dựng API RESTful với bình, MongoDB và Python

Tuy nhiên, có những lúc bạn có thể không muốn sử dụng trình điều khiển, ví dụ, nếu đó là một ứng dụng hoặc tập lệnh dựa trên dòng lệnh hoàn toàn, chẳng hạn như ứng dụng dựa trên Curl để gửi các yêu cầu REST hoặc GraphQL qua HTTP.

Cài đặt trình điều khiển và tạo các điểm cuối cho ứng dụng của bạn có thể thực hiện các cuộc gọi đến cơ sở dữ liệu có thể mất thời gian và nếu bạn có một trường hợp sử dụng rất đơn giản, chẳng hạn như CRUD, chi phí thêm này là không cần thiết. Đây là nơi API dữ liệu ATLAS MongoDB mới xuất hiện.

Sử dụng API dữ liệu ATLAS mới từ các ngôn ngữ khác nhau

Cũng như Curl, bạn có thể gọi API dữ liệu từ nhiều ngôn ngữ khác nhau. Tất cả những gì nó cần là một cách để thực hiện các cuộc gọi HTTP.

Trên thực tế, trong Atlas, chúng tôi thậm chí còn cung cấp cho bạn các đoạn mã bằng các ngôn ngữ khác nhau, ngay từ giao diện người dùng, để bạn bắt đầu thực hiện các cuộc gọi để tìm tài liệu.

  1. Nhấp vào tùy chọn API Data Data (Preview) từ thanh bên trái.

Hướng dẫn does mongodb support rest api? - mongodb có hỗ trợ api phần còn lại không?

  1. Nhấp vào nút Kiểm tra API API của bạn ở góc trên cùng bên phải.

Hướng dẫn does mongodb support rest api? - mongodb có hỗ trợ api phần còn lại không?

  1. Chọn cụm, cơ sở dữ liệu và bộ sưu tập của bạn từ các menu thả xuống, sau đó chọn ngôn ngữ bạn muốn từ hộp thả xuống ở phía dưới.

Hướng dẫn does mongodb support rest api? - mongodb có hỗ trợ api phần còn lại không?

Tìm hiểu thêm về các hoạt động khác, chẳng hạn như viết tài liệu, bạn có thể thực hiện trong tài liệu API dữ liệu của chúng tôi.

Bản tóm tắt

Trong bài viết này, bạn đã tìm hiểu về cách bạn có thể bắt đầu ngày hôm nay với API dữ liệu ATLAS mới mà không cần phải tạo các điểm cuối của riêng bạn. Khi bạn không yêu cầu một ứng dụng đầy đủ, chỉ các hoạt động của CRUD, API dữ liệu ATLAS giúp bạn bắt đầu dễ dàng chỉ trong vài phút. Bạn thậm chí có thể nhận được sự giúp đỡ từ Atlas UI để giúp bạn bắt đầu với các đoạn mã cho ngôn ngữ yêu thích của bạn.

Câu hỏi thường gặp

MongoDB có API giống như phần còn lại không?

Xây dựng API REST với Express, Node và MongoDB

Thực hiện theo với hướng dẫn này để thêm MongoDB Atlas làm kho lưu trữ dữ liệu cho các ứng dụng của bạn, bằng cách tạo NodeJS và Express Web Rest API.

Kiến trúc dự án

Bạn có thể khám phá dự án đầy đủ trong repo GitHub sau:

  • Chi nhánh chính - Dự án đã hoàn thành
  • Chi nhánh sơ khai - Điểm bắt đầu để làm theo hướng dẫn này

Express cho phép chúng tôi tạo một máy chủ cấp giữa chạy giữa các cấp độ back-end.

Máy chủ Express.js cũng kết nối với cụm Atlas MongoDB thông qua trình điều khiển Node.js. Nếu bạn muốn tìm hiểu thêm về MongoDB và Node.js, hãy đọc bài viết sau.

Cuối cùng, ứng dụng mặt trước của chúng tôi sẽ được viết trong React để sử dụng các điểm cuối API REST được lưu trữ trên máy chủ Express.js. Ứng dụng này là một ứng dụng giống như Tinder cho cơ sở dữ liệu sample_airbnb, chứa thông tin trên các danh sách khác nhau, có sẵn như là một phần của bộ dữ liệu mẫu bạn có thể tải vào cụm Atlas.

Hướng dẫn does mongodb support rest api? - mongodb có hỗ trợ api phần còn lại không?

Người dùng có thể vuốt các thẻ danh sách để lưu hoặc thả chúng và nhấn nút giống như trên mạng để thêm lượt thích. Ngoài ra, một cú nhấp chuột đôi sẽ hiển thị chi tiết về thẻ niêm yết cụ thể được trình bày.

Hướng dẫn does mongodb support rest api? - mongodb có hỗ trợ api phần còn lại không?

Cây dự án

Dưới đây là các tệp chính trong dự án:

  • người phục vụ/
    • db
      • conn.js
    • tuyến đường
      • record.js
    • server.js
    • config.env
  • app/listings/
    • public/
    • src/
      • App.js
      • App.css
      • index.js

Thư mục máy chủ của máy chủ lưu trữ ứng dụng máy chủ Express.js và tất cả các phụ thuộc của nó. Các tệp chính ở đây là:

  • DB DB/Conn.JS,: phơi bày kết nối toàn cầu với cơ sở dữ liệu Atlas bằng cách xuất khách MongoDB mà bất kỳ mô -đun nào khác cũng có thể sử dụng.
  • Các tuyến đường/record.js của Nhật Bản: phơi bày các điểm cuối API REST và thực hiện logic kinh doanh của họ đối với cụm Atlas.
  • Máy chủ của máy chủ
  • Config config.env: Tệp cấu hình giữ chi tiết chuỗi kết nối Atlas.

Thư mục ứng dụng/danh sách trên mạng là nơi mã ứng dụng React Front-end nằm. Các tệp chính ở đây là:

  • App App.js/app.css,: Mã phản ứng đầu tiên để hiển thị ứng dụng và tương tác với các điểm cuối API REST Express REST.
  • Chỉ số.

Thiết lập dự án

Đầu tiên, bạn sẽ cần triển khai một cụm Atlas. Bạn có thể làm theo hướng dẫn bắt đầu với Atlas để tìm hiểu cách tạo tài khoản Atlas miễn phí, tạo cụm đầu tiên của bạn và đưa chuỗi kết nối của bạn đến cơ sở dữ liệu.

Khi chúng tôi có sẵn cụm Atlas, chúng tôi có thể tải dữ liệu mẫu bằng cách nhấp vào [...]> tải dữ liệu mẫu tải. Khi dữ liệu được tải, chúng tôi đã sẵn sàng để nhân bản Chi nhánh dự án Stub:

git clone -b stub 
:mongodb-developer/mongodb-express-rest-api-example.git

Hãy cùng đi đến thư mục của máy chủ trên mạng của dự án và cài đặt các gói cần thiết:

cd mongodb-express-rest-api-example/server
npm install

Bây giờ, chúng tôi đã sẵn sàng kết nối máy chủ Express của chúng tôi với cụm Atlas MongoDB.

Kết nối với MongoDB Atlas

Khi bạn định vị chuỗi kết nối của mình, hãy tạo tệp config.env trong thư mục máy chủ. Ở đó, gán một biến Atlas_uri mới Giá trị của chuỗi kết nối. Thay thế

cd mongodb-express-rest-api-example/server
npm install
5 và
cd mongodb-express-rest-api-example/server
npm install
6 bằng tên người dùng và mật khẩu cơ sở dữ liệu của bạn. Sau khi hoàn thành, tệp của bạn sẽ trông tương tự như tệp dưới đây.

ATLAS_URI=mongodb+srv://:@sandbox.jadwj.mongodb.net/myFirstDatabase?retryWrites=true&w=majority

Tiếp theo, Mở Máy chủ/DB/Conn.JS và thêm việc triển khai hàm ConnectToServer từ đoạn trích bên dưới.

const { MongoClient } = require("mongodb");
const connectionString = process.env.ATLAS_URI;
const client = new MongoClient(connectionString, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
});

let dbConnection;

module.exports = {
  connectToServer: function (callback) {
    client.connect(function (err, db) {
      if (err || !db) {
        return callback(err);
      }

      dbConnection = db.db("sample_airbnb");
      console.log("Successfully connected to MongoDB.");

      return callback();
    });
  },

  getDb: function () {
    return dbConnection;
  },
};

Đối tượng chính Mô-đun này xuất ra là biến

cd mongodb-express-rest-api-example/server
npm install
7, sẽ giữ đối tượng cấp cơ sở dữ liệu "
cd mongodb-express-rest-api-example/server
npm install
8". Thông qua đối tượng này, chúng tôi sẽ có thể truy cập bất kỳ bộ sưu tập nào trong cơ sở dữ liệu đó hoặc thay đổi bối cảnh của nó sang cơ sở dữ liệu khác. Trong hướng dẫn này, chúng tôi sẽ chỉ sử dụng một cơ sở dữ liệu có tên là ____ ____18.

Thêm các tuyến đường API REST

Phần Express.js chính trong hướng dẫn này là để hiển thị các tuyến API REST để thực hiện đọc, tạo, cập nhật và xóa các hoạt động cho ứng dụng niêm yết của chúng tôi. Điều này có thể được mở rộng cho logic kinh doanh ứng dụng phức tạp hơn vì trường hợp sử dụng của bạn yêu cầu.

Tệp sẽ lưu trữ các tuyến đường là --- Máy chủ/ROUTE/ROUTER/RECORD.js. Nó sử dụng tính năng Bộ định tuyến Express:

const express = require("express");

// recordRoutes is an instance of the express router.
// We use it to define our routes.
// The router will be added as a middleware and will take control of requests starting with path /listings.
const recordRoutes = express.Router();

Đọc tuyến đường

Tuyến đường đọc sẽ được sử dụng khi đường dẫn

ATLAS_URI=mongodb+srv://:@sandbox.jadwj.mongodb.net/myFirstDatabase?retryWrites=true&w=majority
0 trên phương thức GET được gọi. Nó sẽ sử dụng một bộ sưu tập.find () để truy vấn bộ sưu tập
ATLAS_URI=mongodb+srv://:@sandbox.jadwj.mongodb.net/myFirstDatabase?retryWrites=true&w=majority
1 của chúng tôi cho 50 danh sách có sẵn đầu tiên:

// This section will help you get a list of all the documents.
recordRoutes.route("/listings").get(async function (req, res) {
  const dbConnect = dbo.getDb();

  dbConnect
    .collection("listingsAndReviews")
    .find({}).limit(50)
    .toArray(function (err, result) {
      if (err) {
        res.status(400).send("Error fetching listings!");
     } else {
        res.json(result);
      }
    });
});

Mã gửi lại kết quả được đặt dưới dạng phản hồi API.

Tạo tuyến đường

Tuyến tạo sẽ ghi lại một cú vuốt của trận đấu trên một bộ sưu tập của các trận đấu. Phần thân của phương thức bài đăng này sẽ trình bày một người dùng

ATLAS_URI=mongodb+srv://:@sandbox.jadwj.mongodb.net/myFirstDatabase?retryWrites=true&w=majority
2 và hướng đã được quét và
ATLAS_URI=mongodb+srv://:@sandbox.jadwj.mongodb.net/myFirstDatabase?retryWrites=true&w=majority
3 để tạo tài liệu của trận đấu trên mạng.

// This section will help you create a new document.
recordRoutes.route("/listings/recordSwipe").post(function (req, res) {
  const dbConnect = dbo.getDb();
  const matchDocument = {
    listing_id: req.body.id,
    last_modified: new Date(),
    session_id: req.body.session_id,
    direction: req.body.direction
  };

  dbConnect
    .collection("matches")
    .insertOne(matchDocument, function (err, result) {
      if (err) {
        res.status(400).send("Error inserting matches!");
      } else {
        console.log(`Added a new match with id ${result.insertedId}`);
        res.status(204).send();
      }
    });
});

Việc lưu được thực hiện thông qua phương thức Collection.insertone () với Match Match được xây dựng sẵn.

Bạn cũng có thể sử dụng chèn để chèn nhiều tài liệu cùng một lúc.

Cập nhật tuyến đường

Tuyến bản cập nhật cập nhật trường LIKE LIKES trên một đối tượng niêm yết. Điều này được thực hiện thông qua một phương thức bài viết:

// This section will help you update a document by id.
recordRoutes.route("/listings/updateLike").post(function (req, res) {
  const dbConnect = dbo.getDb();
  const listingQuery = { _id: req.body.id };
  const updates = {
    $inc: {
      likes: 1
    }
  };

  dbConnect
    .collection("listingsAndReviews")
    .updateOne(listingQuery, updates, function (err, _result) {
      if (err) {
        res.status(400).send(`Error updating likes on listing with id ${listingQuery.id}!`);
      } else {
        console.log("1 document updated");
      }
    });
});

Phương thức sẽ sử dụng phương thức thu gom.UpdateOne () với $ Inc trên trường giống như trên mạng để tăng các lượt thích.

Xóa tuyến đường

Bất cứ khi nào một danh sách bị loại bỏ, chúng tôi có thể xóa nó khỏi cơ sở dữ liệu để nó không xuất hiện nữa. Điều này được thực hiện thông qua tuyến đường xóa.

// This section will help you delete a record.
recordRoutes.route("/listings/delete/:id").delete((req, res) => {
  const dbConnect = dbo.getDb();
  const listingQuery = { listing_id: req.body.id };

  dbConnect
    .collection("listingsAndReviews")
    .deleteOne(listingQuery, function (err, _result) {
      if (err) {
        res.status(400).send(`Error deleting listing with id ${listingQuery.listing_id}!`);
      } else {
        console.log("1 document deleted");
      }
    });
});

Tuyến ở đây bao gồm tham số

ATLAS_URI=mongodb+srv://:@sandbox.jadwj.mongodb.net/myFirstDatabase?retryWrites=true&w=majority
4. Đây là ID của danh sách sẽ bị xóa thông qua Collection.DeleteOne ().

Bây giờ chúng tôi có mọi thứ tại chỗ, chúng tôi có thể khởi chạy máy chủ:

npm start
[nodemon] starting `node server.js`
Successfully connected to MongoDB.
Server is running on port: 5000

Thiết lập mặt trước

Ứng dụng React của chúng tôi bao gồm chủ yếu là tệp và lớp React App.js.

cd mongodb-express-rest-api-example/server
npm install
0

Chúng tôi sẽ sử dụng một số mô-đun của bên thứ ba, như thẻ phản ứng, thẻ, cho phép chúng tôi tạo ra các gạch và đồ họa vuốt. Những người đó sẽ tương tác với các chức năng ứng dụng để xử lý các sự kiện như trên ONSWIPE, trên mạng HandlelikeClick, showdetails, và thành phần của thành phần, để hiển thị dữ liệu về tải trang).

Các chức năng của Onswipe, trên mạng, HandlelikeClick, thành phần và thành phần sẽ sử dụng thư viện Axios để thực hiện các yêu cầu API HTTP REST đến Máy chủ Express của chúng tôi. Những người đó, đến lượt nó, sẽ thực hiện hành động cần thiết trên cụm Atlas của chúng tôi.

Bây giờ chúng tôi có thể bắt đầu ứng dụng trong một thiết bị đầu cuối mới (quy trình máy chủ phải vẫn chạy):

cd mongodb-express-rest-api-example/server
npm install
1

Kiểm tra ứng dụng

Khi tất cả các thành phần đang hoạt động, chúng tôi có thể mở HTTP: // LocalHost: 3000 URL và chúng tôi sẽ thấy ứng dụng Listinder của chúng tôi được tải:

Ứng dụng chínhCà thẻHiển thị chi tiết
Hướng dẫn does mongodb support rest api? - mongodb có hỗ trợ api phần còn lại không?
Hướng dẫn does mongodb support rest api? - mongodb có hỗ trợ api phần còn lại không?
Hướng dẫn does mongodb support rest api? - mongodb có hỗ trợ api phần còn lại không?

Tương tác với các viên gạch bằng cách hoán đổi chúng sẽ gọi các tuyến đường nhanh của chúng tôi và thực hiện các hoạt động ứng dụng.

cd mongodb-express-rest-api-example/server
npm install
2

Atlas Ứng dụng Dịch vụ webhooks thay thế rõ ràng

Các dịch vụ ứng dụng Atlas, Cơ sở dữ liệu di động MongoDB và các dịch vụ đám mây phát triển, cung cấp một sự thay thế mạnh mẽ và có thể mở rộng cho máy chủ Express tự lưu trữ.

Tạo một ứng dụng rất dễ dàng với một tầng miễn phí hào phóng. Trong ứng dụng đó, bạn có thể tạo các dịch vụ HTTP với các điểm cuối Webhook để thực hiện các hoạt động tương tự như các tuyến đường Express, mà không cần phải duy trì và mã hóa nhiều mã Boilerplate. Các dịch vụ này được tối ưu hóa để truy cập cụm Atlas và sẽ mở ra một thế giới mới về các cơ hội như các chức năng đám mây, nhà cung cấp Auth, GraphQL và Triggers.

Hãy để cổng một tuyến đường đến một webhook. Chúng tôi sẽ bắt đầu bằng cách tạo một dịch vụ HTTP trong UI ứng dụng Realm mới được tạo.

Tạo dịch vụ HTTP

Điều hướng đến phần Dịch vụ của bên 3D và nhấp vào loại dịch vụ HTTP.

Hướng dẫn does mongodb support rest api? - mongodb có hỗ trợ api phần còn lại không?

Tạo webhook cho dịch vụ đó

Là một phần của việc xác định dịch vụ, chúng tôi cần định cấu hình phương thức HTTP mà webhook này sẽ sử dụng và logic chức năng liên quan của nó.

Hướng dẫn does mongodb support rest api? - mongodb có hỗ trợ api phần còn lại không?

Mã chức năng liên quan:

cd mongodb-express-rest-api-example/server
npm install
3

Bây giờ chúng ta có thể sử dụng URL Webhook trực tiếp trong ứng dụng React. Thêm phần sau vào lớp ứng dụng trong App.js:

cd mongodb-express-rest-api-example/server
npm install
4

Wow, điều đó dễ dàng hơn và có thể mở rộng hơn nhiều!

Bản tóm tắt

Sử dụng Express như một phần mềm trung gian back-end là một thiết kế ngăn xếp MongoDB phổ biến. Express là nhẹ và dễ tiếp cận cho các hoạt động API của JSON và REST. MongoDB Atlas là một cơ sở dữ liệu tài liệu có thể mở rộng và linh hoạt như một dịch vụ và tạo nên một người bạn đồng hành hoàn hảo để thể hiện trong nhiều ngăn xếp như MERN, MEAD và MEVN.

Phải nói rằng, Atlas App Services và Webhooks là sự thay thế mạnh mẽ cho tầng nhanh, di chuyển nhu cầu quản lý một máy chủ Express và các phụ thuộc của nó tại chỗ.

Câu hỏi thường gặp

Làm cách nào để sử dụng MongoDB với JS Express?

Làm cách nào để tạo API REST bằng Node Express và Mongo?

MongoDB có API REST không?

API dữ liệu ATLAS là API giống như REST được quản lý đầy đủ, để cho phép bạn truy cập dữ liệu Atlas MongoDB của mình và thực hiện các hoạt động và tập hợp CRUD một cách dễ dàng.Sau khi được bật trên một cụm, bạn có thể đạt được tất cả các hoạt động CRUD ra khỏi hộp thông qua URL, chỉ với khóa API., to allow you to access your MongoDB Atlas data, and perform CRUD operations and aggregations with ease. Once enabled on a cluster, you can achieve all the CRUD operations out of the box via a URL, with just an API key.

Postman có thể kết nối với MongoDB không?

Bây giờ bạn sẽ cần phải định cấu hình các bộ sưu tập Postman của mình để sẵn sàng sử dụng bộ sưu tập MongoDB của bạn.Bắt đầu bằng cách mở tab Biến trong bộ sưu tập Postman.Bạn sẽ cần điền vào các giá trị cho từng biến.Nếu bạn không muốn các biến được lưu trong bộ sưu tập của mình, hãy sử dụng cột Giá trị hiện tại.. Start by opening the Variables tab in the Postman collection. You will need to fill in the values for each variable. If you don't want the variables to be saved in your collection, use the Current value column.

API trong MongoDB là gì?

API truy vấn MongoDB được xây dựng có mục đích để xử lý dữ liệu của bất kỳ cấu trúc nào.Nhanh chóng truy vấn, chuyển đổi và phân tích dữ liệu khi lược đồ của bạn phát triển.purpose-built to handle data of any structure. Quickly query, transform, and analyze data as your schema evolves.

Tôi có thể sử dụng MongoDB cho thời gian thực không?

Với MongoDB, các doanh nghiệp có thể phân tích bất kỳ dữ liệu nào tại chỗ và cung cấp những hiểu biết trong thời gian thực..