1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO CÁO TIỂU LUẬN MÔN HỌC Tìm hiểu về công cụ tìm kiếm Elasticsearch và ứng dụng tìm kiếm vào website thương mại điện tử

35 5 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 35
Dung lượng 1,87 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • Chương 1. Kiến thức nền tảng

    • 1.1. Elasticsearch:

      • 1.1.1. Elasticsearch là gì?

      • 1.1.2. Elasticsearch hoạt động như thế nào:

      • 1.1.3. Các khái niệm cần biết về Elasticsearch

        • 1.1.3.1. Document

        • 1.1.3.2. Index

        • 1.1.3.3. Shard

        • 1.1.3.4. Node

        • 1.1.3.5. Cluster

      • 1.1.4. Ưu nhược điểm của Elasticsearch

        • 1.1.4.1. Ưu điểm

        • 1.1.4.2. Nhược điểm

      • 1.1.5. Cách cài đặt:

      • 1.1.6. Các lệnh cơ bản để truy vấn trong Elasticsearch

        • 1.1.6.1. Tạo một index

        • 1.1.6.2. Chỉnh sửa, cập nhật tài liệu

        • 1.1.6.3. Xoá tài liệu

        • 1.1.6.4. Truy vấn tìm kiếm cơ bản

    • 1.2. Kibana

    • 1.3. Docker

      • 1.3.1. Giới thiệu

      • 1.3.2. Container

      • 1.3.3. Khái niệm liên quan

    • 1.4. MongoDB

      • 1.4.1. Giới thiệu MongoDB

      • 1.4.2. Một số câu lệnh cơ bản trên MongoDB

      • 1.4.3. Ưu điểm của MongoDB

      • 1.4.4. Nhược điểm của MongoDB

    • 1.5. NodeJS

      • 1.3.1. Giới thiệu

      • 1.3.2. Những ứng dụng nên viết bằng Nodejs

    • 1.6. Express

    • 1.7. Restful Api

      • 1.7.2. Đặc điểm của Resful API

    • 1.8. React JS

      • 1.8.1. Lợi ích của việc sử dụng react js

  • Chương 2. Phát biểu bài toán

    • 2.1. Các chức năng cơ bản

    • 2.2. Kiến trúc tổng thể phần mềm

    • Kiến trúc tổng thể của phần mềm

  • Chương 3. Đặt tả yêu cầu:

    • 3.1. Sơ đồ và CSDL

    • 3.2. Đặc tả Use Case

  • Chương 4. Các giao diện của đề tài

    • 4.1. Kibana

    • 4.2. Studio 3T

    • 4.3. Docker

    • 4.4. Trang chủ

    • 4.5. Trang admin

    • 4.6. Chi tiết một sản phẩm

    • 4.7. Giỏ hàng

    • 4.7. Giỏ hàng

    • 4.7. Giỏ hàng

    • 4.7. Giỏ hàng

Nội dung

Elasticsearch thường được sử dụng trong việc tìm kiếm đơn giản trên trang web, chỉ mục và thu thập dữ liệu, cho đến phân tích và trực quan hóa dữ liệu kinh doanh.. Elasticsearch thườn

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ CHÍ MINH

BÁO CÁO TIỂU LUẬN MÔN HỌC Tìm hiểu về công cụ tìm kiếm Elasticsearch

và ứng dụng tìm kiếm vào website thương mại

điện tử

Môn học:

Các hệ cơ sở dữ liệu

Ngành:

CÔNG NGHỆ THÔNG TIN

Giảng viên: PGS.TS Nguyễn Thị Thúy Loan

Nhóm học viên thực hiện

Tháng 9 - 2022

Trang 2

Mục lục

Chương 1 Kiến thức nền tảng 1

1.1 Elasticsearch: 1

1.1.1 Elasticsearch là gì? 1

1.1.2 Elasticsearch hoạt động như thế nào: 2

1.1.3 Các khái niệm cần biết về Elasticsearch 2

1.1.3.1 Document 2

1.1.3.2 Index 3

1.1.3.3 Shard 3

1.1.3.4 Node 3

1.1.3.5 Cluster 3

1.1.4 Ưu nhược điểm của Elasticsearch 4

1.1.4.1 Ưu điểm 4

1.1.4.2 Nhược điểm 5

1.1.5 Cách cài đặt: 5

1.1.6 Các lệnh cơ bản để truy vấn trong Elasticsearch 6

1.1.6.1 Tạo một index 6

1.1.6.2 Chỉnh sửa, cập nhật tài liệu 6

1.1.6.3 Xoá tài liệu 6

1.1.6.4 Truy vấn tìm kiếm cơ bản 6

1.2 Kibana 7

1.3 Docker 7

1.3.1 Giới thiệu 7

1.3.2 Container 7

1.3.3 Khái niệm liên quan 8

1.4 MongoDB 9

1.4.1 Giới thiệu MongoDB 9

1.4.2 Một số câu lệnh cơ bản trên MongoDB 9

1.4.3 Ưu điểm của MongoDB 10

1.4.4 Nhược điểm của MongoDB 11

1.5 NodeJS 11

1.3.1 Giới thiệu 11

1.3.2 Những ứng dụng nên viết bằng Nodejs 11

Trang 3

1.7 Restful Api 12

1.7.2 Đặc điểm của Resful API 12

1.8 React JS 13

1.8.1 Lợi ích của việc sử dụng react js 13

Chương 2 Phát biểu bài toán 14

2.1 Các chức năng cơ bản 14

2.2 Kiến trúc tổng thể phần mềm 14

Kiến trúc tổng thể của phần mềm 14

Chương 3 Đặt tả yêu cầu: 15

3.1 Sơ đồ và CSDL 15

3.2 Đặc tả Use Case 18

Chương 4 Các giao diện của đề tài 23

4.1 Kibana 23

4.2 Studio 3T 24

4.3 Docker 24

4.4 Trang chủ 24

4.5 Trang admin 26

4.6 Chi tiết một sản phẩm 26

4.7 Giỏ hàng 27

4.8 Bộ lọc sản phẩm 28

4.9 Đăng nhập 28

4.10 Đăng ký 29

Tài liệu tham khảo 30

Mục lục hình ảnh

Hình 1 1 Sơ đồ hoạt động của Elasticsearch 2

Hình 1 2 Cách hoạt động của Elasticseach 4

Hình 1 3 Giao diện kibana 7

Hình 3 1 Sơ đồ giao tiếp của hệ thống 15

Hình 3 2 Cơ sở dữ liệu của dự án 17

Hình 3 3 Sơ đồ usecase 18

Hình 4 1 Giao diện dev tool của kibana 23

Hình 4 2 Giao diện chính của Studio 3T 24

Hình 4 3 Giao diện chính của docker desktop 24

Trang 4

Hình 4 4 Giao diện chính trang web 26

Hình 4 5 Giao diện chính trang admin 26

Hình 4 6 Giao diện chi tiết của sản phẩm 27

Hình 4 7 Giao diện chi tiết của sản phẩm 27

Hình 4 8 Giao diện bộ lọc sản phẩm 28

Hình 4 9 Giao diện đăng nhập 28

Hình 4 10 Giao diện đăng ký tài khoản 29

Trang 5

NHIỆM VỤ ĐỀ TÀI

1 Nội dung và các yêu cầu cần giải quyết trong báo cáo môn học

o Lập trình NodeJS, ReactJS, Express Framework

o Công cụ tìm kiếm Elasticsearch

o Hệ quản trị cơ sở dữ liệu MongoDB

o Kết nối NodeJS, Elasticsearch với MongoDB

2 Các tài liệu, số liệu cần thiết

Sử dụng số liệu thực tế thu thập trên mạng internet

Trang 6

Elasticsearch cung cấp cho người dùng một hệ thống tìm kiếm dạng phân tán, phù hợp

với tệp dữ liệu lớn Elasticsearch thường được sử dụng trong việc tìm kiếm đơn giản trên trang web, chỉ mục và thu thập dữ liệu, cho đến phân tích và trực quan hóa dữ liệu kinh doanh

Elasticsearch thường hoạt động với các thành phần khác trong ELK

Stack, Logstash và Kibana, trong đó đóng vai trò lập chỉ mục dữ liệu

Trang 7

1.1.2 Elasticsearch hoạt động như thế nào:

Hình 1 1 Sơ đồ hoạt động của Elasticsearch

Về cơ bản, Elasticsearch hoạt động như một Cloud Server có khả năng tìm kiếm thông qua

cơ chế RESTful Trong đó, người dùng tạo ra các HTTP Request và dữ liệu dạng JSON, sau đó nhập vào Elasticsearch Các dữ liệu này đều được đánh Index (Chỉ mục), giúp đem lại hiệu quả tìm kiếm rất cao

Đầu tiên, dữ liệu được đưa vào Elasticsearch từ nhiều nguồn khác nhau, sau đó được phân tích, xử lý, trong quá trình nhập liệu Tiếp theo, dữ liệu được phân loại và chỉ mục, được đẩy lên Server Elasticsearch Cuối cùng, người dùng có thể tạo các truy vấn phức tạp và lấy dữ liệu được trả về từ server Elasticsearch

1.1.3 Các khái niệm cần biết về Elasticsearch

1.1.3.1 Document

Document là thông tin cơ bản được lập chỉ mục trong Elasticsearch, là đơn vị lưu

trữ dữ liệu nhỏ nhất trong Elasticsearch Document có thể là văn bản, hoặc có thể

là bất kỳ dạng cấu trúc dữ liệu nào được mã hóa bằng JSON như số, chuỗi, ngày

tháng,…

Trang 8

Mỗi Document có một ID duy nhất cho một kiểu dữ liệu duy nhất Ví dụ, một

Document có thể đại diện cho một bài báo bách khoa toàn thư

1.1.3.2 Index

Index (Chỉ mục) là tập hợp các tài liệu có đặc điểm liên quan về mặt logic Ví dụ:

Trong trang web của một sàn thương mại điện tử, bạn sẽ tìm thấy một Chỉ mục cho Khách hàng, một Chỉ mục cho Sản phẩm,… Chỉ mục được sử dụng để tìm kiếm, thêm mới hoặc xóa các tài liệu trong đó

Một khái niệm trong Index mà bạn nên biết đó là Inverted Index (Chỉ mục đảo

ngược) Chỉ mục đảo ngược không lưu trữ trực tiếp các chuỗi mà chia từng tài liệu thành các cụm từ tìm kiếm riêng lẻ Nhờ đó, người dùng có thể tìm thấy các kết quả phù hợp nhanh chóng, kể cả trong các tệp dữ liệu với khối lượng lớn

1.1.3.3 Shard

Shard là tập con các Document của 1 Index, là đơn vị lưu trữ dữ liệu nhỏ nhất,

hoạt động ở mức thấp nhất Bằng cách phân phối Documents trong một Index trên

nhiều Shard, Elasticsearch có thể đảm bảo tính dự phòng, bảo vệ hệ thống khỏi lỗi

phần cứng và giúp tăng khả năng truy vấn khi hoạt động

Có 2 loại Shard là : Primary Shard và Replica Shard

Primary Shard được lưu trữ dữ liệu và đánh Index, sau đó được vận chuyển

tới các Replica Shard

Replica Shard là nơi lưu trữ dữ liệu nhân bản của Primary Shard, giúp đảm

bảo dữ liệu Primary Shard được toàn vẹn ngay cả khi hệ thống xảy ra vấn đề

1.1.3.4 Node

Node được coi là bộ phận “đầu não” của Elasticsearch Đây là nơi lưu trữ dữ liệu

trực tiếp, đánh Index của Cluster và thực hiện các thao tác tìm kiếm dữ liệu Mỗi Node thường được định danh bằng 1 một cái tên duy nhất

1.1.3.5 Cluster

Trang 9

Cluster là tập hợp các nodes hoạt động cùng với nhau Mỗi Cluster có một Node

chính được lựa chọn tự động, Node này có thể thay thế Một trong những lỗi sai

của các developer mới là định danh các Cluster trùng tên nhau, điều này sẽ gây lỗi

cho các Node Bạn nên lưu ý vấn đề này khi tiến hành setup

Hình 1 2 Cách hoạt động của Elasticseach

1.1.4 Ưu nhược điểm của Elasticsearch

1.1.4.1 Ưu điểm

• Tìm kiếm dữ liệu nhanh chóng: Điều này có được nhờ cơ chế hoạt động của

Elasticsearch thay vì tìm kiếm văn bản trực tiếp, nó tìm kiếm một Index Nó sử dụng cấu trúc Document thay vì bảng và lược đồ

• Khả năng phân phối mở rộng: Bản chất phân tán của Elasticsearch giúp

người dùng mở rộng quy mô lên hàng trăm, hàng nghìn máy chủ và xử lý hàng petabyte dữ liệu

• Đơn giản hóa hiển thị và báo cáo dữ liệu: Elasticsearch cho phép tích hợp

với Beats và Logstash, giúp người dùng dễ dàng xử lý dữ liệu trước khi đưa vào Elasticsearch Ngoài ra, khả năng trực quan hóa giao diện giúp truy cập dữ liệu một cách nhanh chóng

Trang 10

• Tính năng vượt trội: Elasticsearch cung cấp một số tính năng vượt trội cho

phép người dùng lưu trữ và tìm kiếm dữ liệu hiệu quả như cuộn dữ liệu và quản lý vòng đời Index

• Ngoài ra, Elasticsearch cũng hỗ trợ dữ liệu từ Java, PhP, Javascript, NET, Python, giúp người dùng dễ dàng hơn trong quá trình sử dụng và chuyển đổi

1.1.4.2 Nhược điểm

• Elasticsearch được thiết kế chủ yếu cho việc search dữ liệu, do vậy yếu thế hơn

so với các database khác về các mục đích ngoài search

• Elasticsearch không thích hợp với những hệ thống thường xuyên cập nhật dữ liệu

1.1.5 Cách cài đặt:

Bước 1: Sử dụng docker để cài đặt:

elasticsearch:

image: docker.elastic.co/elasticsearch/elasticsearch:8.4.1 container_name: elasticsearch

restart: always environment:

- http.cors.allow-credentials=true ulimits:

memlock:

Trang 11

soft: -1 hard: -1 nofile:

soft: 65536 hard: 65536 cap_add:

- IPC_LOCK volumes:

- elasticsearch-data:/Users/duyettranminh/Desktop/elasticsearch/data ports:

- 9200:9200

Bước 2: Chạy lên docker-compose up để build server

1.1.6 Các lệnh cơ bản để truy vấn trong Elasticsearch

1.1.6.1 Tạo một index PUT /<tên index>

1.1.6.2 Chỉnh sửa, cập nhật tài liệu PUT /<tên index>/_doc/1?pretty {

"name": "index-1", "age": "20"

} 1.1.6.3 Xoá tài liệu DELETE /<tên index>

1.1.6.4 Truy vấn tìm kiếm cơ bản GET /<tên index>/_search {

"query": { "match": { "account_number": 20 } } }

Trang 12

1.2 Kibana

Kibana là một nền tảng phân tích hiển thị dữ liệu từ Elasticsearch một cách trực quan dễ sử dụng,Kibana cũng là một công cụ mã nguồn mở miễn phí, cho tất cả mọi người sử dụng Kibana cung cấp các tính năng cho người dùng quản lý như biểu đồ cột, biểu đồ đường, biểu đồ tròn, biểu đồ nhiệt và nhiều loại chart khác nữa

Hình 1 3 Giao diện kibana

1.3 Docker

1.3.1 Giới thiệu

Docker là một nền tảng để cung cấp cách để building, deploying và running ứng dụng dễ

dàng hơn bằng cách sử dụng các containers (trên nền tảng ảo hóa) Ban đầu viết bằng Python, hiện tại đã chuyển sang Golang

1.3.2 Container

Các containers cho phép lập trình viên đóng gói một ứng dụng với tất cả các phần cần thiết, chẳng hạn như thư viện và các phụ thuộc khác, và gói tất cả ra dưới dạng một package Bằng cách đó, nhờ vào container, ứng dụng sẽ chạy trên mọi máy Linux khác bất kể mọi cài đặt tùy chỉnh mà máy có thể có khác với máy được sử dụng để viết code

Trang 13

Theo một cách nào đó, Docker khá giống virtual machine Nhưng tại sao Docker lại phát triển, phổ biến nhanh chóng? Đây là những nguyên nhân:

Tính dễ ứng dụng: Docker rất dễ cho mọi người sử dụng từ lập trình viên, sys admin…

nó tận dụng lợi thế của container để build, test nhanh chóng Có thể đóng gói ứng dụng trên laptop của họ và chạy trên public cloud, private cloud… Câu thần chú là “Build once, run anywhere”

Tốc độ: Docker container rất nhẹ và nhanh, bạn có thể tạo và chạy docker container

trong vài giây

Môi trường chạy và khả năng mở rộng: Bạn có thể chia nhỏ những chức năng của ứng

dụng thành các container riêng lẻ Ví dụng Database chạy trên một container và Redis cache

có thể chạy trên một container khác trong khi ứng dụng Node.js lại chạy trên một cái khác nữa Với Docker, rất dễ để liên kết các container với nhau để tạo thành một ứng dụng, làm cho nó dễ dàng scale, update các thành phần độc lập với nhau

1.3.3 Khái niệm liên quan

Docker Engine : là thành phần chính của Docker, như một công cụ để đóng gói ứng dụng

Docker Hub : là một “github for docker images” Trên DockerHub có hàng ngàn public images được tạo bởi cộng đồng cho phép bạn dễ dàng tìm thấy những image mà bạn cần

Và chỉ cần pull về và sử dụng với một số config mà bạn mong muốn

Images: là một khuôn mẫu để tạo một container Thường thì image sẽ dựa trên 1 image

có sẵn với những tùy chỉnh thêm Ví dụ bạn build 1 image dựa trên image Centos mẫu có sẵn để chạy Nginx và những tùy chỉnh, cấu hình để ứng dụng web của bạn có thể chạy được Bạn có thể tự build một image riêng cho mình hoặc sử dụng những image được chia

sẽ từ cộng đồng Docker Hub Một image sẽ được build dựa trên những chỉ dẫn của Dockerfile

Container: là một instance của một image Bạn có thể create, start, stop, move or delete container dựa trên Docker API hoặc Docker CLI

Docker Client: là một công cụ giúp người dùng giao tiếp với Docker host

Trang 14

Docker Daemon: lắng nghe các yêu cầu từ Docker Client để quản lý các đối tượng như Container, Image, Network và Volumes thông qua REST API Các Docker Daemon cũng giao tiếp với nhau để quản lý các Docker Service

Dockerfile: là một tập tin bao gồm các chỉ dẫn để build một image

Volumes: là phần dữ liệu được tạo ra khi container được khởi tạo

1.4 MongoDB

1.4.1 Giới thiệu MongoDB

MongoDB là hệ CSDL mã nguồn mở, là CSDL phi quan hệ hay còn gọi là NoSQL Relationship SQL hay còn gọi là Not only SQL) NoSQL được phát triển trên Javascript Framework với kiểu dữ liệu là JSON và dạng dữ liệu theo kiểu key và value NoSQL ra đời như là sự bổ sung cho những khuyết điểm và thiếu xót cũng như hạn chế của mô hình dữ liệu quan hệ RDBMS (Relational Database Management System - Hệ quản trị cơ sở dữ liệu quan hệ) về tốc độ, tính năng, khả năng mở rộng Với NoSQL bạn có thể mở rộng dữ liệu

(None-mà không lo tới những việc như tạo khóa ngoại, khóa chính, kiểm tra ràng buộc NoSQL

bỏ qua tính toàn vẹn của dữ liệu và transaction để đổi lấy hiệu suất nhanh và khả năng mở rộng NoSQL được sử dụng ở rất nhiều công ty, tập đoàn lớn Ví dụ như FaceBook sử dụng Cassandra do FaceBook phát triển, Google phát triển và sử dụng BigTable MongoDB là một database hướng tài liệu (document), các dữ liệu được lưu trữ trong document kiểu JSON thay vì dạng bảng như CSDL quan hệ nên truy vấn sẽ rất nhanh

Với CSDL quan hệ chúng ta có khái niệm bảng, các cơ sở dữ liệu quan hệ (như MySQL hay SQL Server ) sử dụng các bảng để lưu dữ liệu thì với MongoDB chúng ta sẽ dùng khái niệm là collection thay vì bảng So với RDBMS thì trong MongoDB collection ứng với table, còn document sẽ ứng với row, MongoDB sẽ dùng các document thay cho row trong RDBMS

Các collection trong MongoDB được cấu trúc rất linh hoạt, cho phép các dữ liệu lưu trữ không cần tuân theo một cấu trúc nhất định Thông tin liên quan được lưu trữ cùng nhau để truy cập truy vấn nhanh thông qua ngôn ngữ truy vấn MongoDB

1.4.2 Một số câu lệnh cơ bản trên MongoDB

Trang 15

Mục này so sánh một số câu lệnh giữa MongoDB và MySQL để làm nổi bật cách xử lý dữ liệu của MongoDB

INSERT INTO studetns ('name',

'gender') VALUES('thanh', 'male');

db.students.insert({ name:'thanh', gender: 'male'});

SELECT * FROM students WHERE

name = 'thanh'; db.students.find({ name: 'thanh' });

1.4.3 Ưu điểm của MongoDB

• Do MongoDB sử dụng lưu trữ dữ liệu dưới dạng Document JSON nên mỗi một

collection sẽ có các kích cỡ và các document khác nhau, linh hoạt trong việc lưu trữ dữ liệu, do đó việc chèn thêm dữ liệu vào không bị hạn chế

• Dữ liệu trong MongoDB không bị ràng buộc như cơ sở dữ liệu quan hệ, không kết nối

Do đó, khi bổ sung, xóa hay cập nhật sẽ không bị mất thời gian kiểm tra xem có thỏa mãn các ràng buộc dữ liệu như trong RDBMS

• MongoDB rất dễ mở rộng Trong MongoDB có một khái niệm cụm dữ liệu (cluster), là

cụm các node chứa dữ liệu giao tiếp với nhau, khi muốn mở rộng hệ thống ta chỉ cần thêm một node với vào cluster

Trang 16

• Trường dữ liệu “_id” luôn được tự động đánh chỉ mục để tốc độ truy vấn thông tin đạt

hiệu suất cao nhất

• Khi có một truy vấn dữ liệu, các bản ghi được ghi tạm thời lên bộ nhớ Ram, để phục vụ các truy vấn tiếp theo, vì vậy sự xử lý cũng diễn ra nhanh hơn mà không cần phải đọc lại

từ ổ cứng

• Hiệu năng cao: Tốc độ truy vấn (find, update, insert, delete) của MongoDB nhanh hơn hẳn so với các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) Với một lượng dữ liệu đủ lớn khi thử nghiệm cho thấy tốc độ insert của MongoDB có thể nhanh tới gấp 100 lần so với MySQL

1.4.4 Nhược điểm của MongoDB

Hệ quản trị cơ sở dữ liệu MongoDB có nhiều ưu điểm, tuy nhiên cũng có một số nhược điểm MongoDB không có các tính chất ràng buộc như trong RDBMS nên khi thao tác với MongoDB thì chuyên gia phải tự xử lý các mối quan hệ giữa các dữ liệu Bộ nhớ lưu trữ bị tăng, do dữ liệu lưu dưới dạng key-value, các bộ dữ liệu chỉ khác về giá trị do đó các Khóa

sẽ bị lặp lại MongoDB cũng không hỗ trợ liên kết nên dữ liệu bị dư thừa Một điều nữa, khi insert/update/remove bản ghi, MongoDB sẽ chưa cập nhật ngay xuống ổ cứng, mà sau một khoảng thời gian 60 giây MongoDB mới thực hiện ghi toàn bộ dữ liệu thay đổi từ RAM xuống thiết bị lưu trữ, điều này sẽ có nguy cơ bị mất dữ liệu khi xảy ra các tình huống như mất điện

1.5 NodeJS

1.3.1 Giới thiệu

NodeJS là một platform mới, xây dựng trên Chrome Javascript Runtime (V8) nhằm phát triển các ứng dụng phía máy chủ nhanh chóng và dễ mở rộng Một số điểm mạnh của NodeJS:

1.3.2 Những ứng dụng nên viết bằng Nodejs

Rõ ràng, không phải cứ hot và mới là Nodejs làm gì cũng tốt, ví dụ như một ứng dụng cần tính ổn định cao, logic phức tạp thì các ngôn ngữ PHP hay Ruby vẫn là sự lựa chọn tốt hơn Còn dưới đây là những ứng dụng có thể và nên viết bằng Nodejs:

Trang 17

• Fast File Upload ClientL: là các chương trình upload file tốc độ cao

• Ad Server: Các máy chủ quảng cáo

• Cloud Services: Các dịch vụ đám mây

• RESTful API: đây là những ứng dụng mà được sử dụng cho các ứng dụng khác thông qua API

• Any Real-time Data Application: bất kỳ một ứng dụng nào có yêu cầu về tốc độ thời gian thực Micro Services: Ý tưởng của micro services là chia nhỏ một ứng dụng lớn thành các dịch vụ nhỏ và kết nối chúng lại với nhau Nodejs có thể làm tốt điều này

1.6 Express

Express là một framework giành cho Nodejs Nó cung cấp cho chúng ta rất nhiều tính năng mạnh

mẽ trên nền tảng web cũng như trên các ứng dụng di động

Express hỗ rợ các phương thức HTTP và midleware tạo ra môt API vô cùng mạnh mẽ và dễ sử dụng Có thể tổng hợp một số chức năng chính của express như sau:

1.7 Restful Api

1.7.1 Giới thiệu RestFul API

API (Application Programming Interface) là một tập các quy tắc và cơ chế mà theo đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành phần khác API có thể trả về dữ liệu mà bạn cần cho ứng dụng của mình ở những kiểu dữ liệu phổ biến như JSON hay XML

REST: REST là viết tắt của REpresentational State Transfer REST là tập hợp các hướng dẫn và kiến trúc sử dụng cho việc truyền dữ liệu REST áp dụng phổ biến cho các Web app, nhưng cũng hoàn toàn có thể sử dụng cho các phần mềm nói chung Vì thế RESTful API

là các API mà tuân theo các kiến trúc và quy tắc của REST

1.7.2 Đặc điểm của Resful API

• Nhất quán xuyên suốt các API

• Stateless existence

• Sử dụng HTTP status code khi có thể

• Sử dụng URL Endpoint có phân tầng logic

Ngày đăng: 28/10/2022, 11:36

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w