Hiện nay API nói chung và Web API nói riêng đang được ứng dụng ngày càng nhiều. Kiến trúc ứng dụng hiện đại ngày nay ngày càng phân tán, không phụ thuộc ngôn ngữ đã thúc đẩy việc ứng dụng API. Vậy API là gì? Nguồn gốc và ưu điểm của nó là như thế nào?
API là các phương thức, giao thức kết nối với các thư viện và ứng dụng khác. Nó là viết tắt của Application Programming Interface – giao diện lập trình ứng dụng. API cung cấp khả năng cung cấp khả năng truy xuất đến một tập các hàm hay dùng. Và từ đó có thể trao đổi dữ liệu giữa các ứng dụng.
- Web API được sử dụng hầu hết trên các ứng dụng desktop, ứng dụng mobile và ứng dụng website.
- Linh hoạt với các định dạng dữ liệu khi trả về client: Json, XML hay định dạng khác.
- Nhanh chóng xây dựng HTTP service: URI, request/response headers, caching, versioning, content formats và có thể host trong ứng dụng hoặc trên IIS.
- Mã nguồn mở, hỗ trợ chức năng RESTful đầy đủ, sử dụng bởi bất kì client nào hỗ trợ XML, Json.
- Hỗ trợ đầy đủ các thành phần MVC như: routing, controller, action result, filter, model binder, IoC container, dependency injection, unit test.
- Giao tiếp hai chiều được xác nhận trong các giao dịch, đảm bảo độ tin cậy cao
Mang đến một giải pháp toàn diện hỗ trợ cho lập trình viên triển khai ứng dụng một cách nhanh nhất và hiểu quả nhất. Thay vì xây dựng 1 hệ thống đầy đủ cần phải làm các bước khởi tạo database, viết api, viết cms quản lý nội dung. Ta chỉ cần cài đặt mã nguồn mở STRAPI và khai báo khởi tạo và sử dụng luôn.
1.Giới thiệu ATRAPI
Strapi là hệ quản trị nội dung mã nguồn mở hàng đầu. Được sử dụng 100% Javascript, hoàn toàn tùy biến theo ý muốn của nhà phát triển. Giúp cho việc phát triển một dự án nhanh nhất. Có thể tùy biến để xây dựng nhiều sản phẩm trên nhiều nền tảng khác nhau.
Strapi là một framework NodeJS giúp bạn quản lý nội dung CMS một cách dễ dàng và xây dựng sẵn các Rest full API cũng như khả năng custom API. Giúp chúng ta tiết kiệm hàng tuần hàng tháng phát triển. Nếu chúng ta cần custom theo những ứng dụng đặc thì Strapi cung cấp giải pháp viết plugin để cài cắm vào hệ thống.
Ngoài ra, strapi còn tích hợp nhiều framework JS giúp việc build Front-end trở nên dễ dàng hơn rất nhiều
Cùng xem danh sách các framework có thể tích hợp được nhé
- Gatsby CMS
- React CMS
- js CMS
- js CMS
- js CMS
- Angular CMS
Nó rất đa dạng, tuỳ thuộc vào thế mạnh của mình mà bạn sẽ lựa chọn cho mình những framework phù hợp với mình để bạn phát triển
2. Các tính năng của STRAPI
Dưới đây liệt kê những tính năng của STRAPI mang lại cho bạn. Giúp bạn đáp ứng được hầu hết các công việc:
- Quản lý nội dung giao diện trực quan
- Xây dựng tùy biến API theo ý muốn
- Quản lý sản phẩm, hình ảnh, video, files
- Quản lý phân quyền tùy chỉnh theo ý muốn.
3. Giao diện hệ quản trị nội dung
Trang đăng nhập sau khi cài đặt thì có link đăng nhập là locahost:1377/admin
Sau khi đăng nhập sẽ vào trang chủ của hệ thống quản trị nội dung
Trang người dùng được tạo sẵn demo của hệ thống quản trị nội dung. Bạn có thể tùy biến thêm các trường vào mục này và tùy biến các trường đó ở dạng dữ liệu bạn muốn
Trang quản lý và xây dựng các trường nội dung. Giống như bạn tạo các bảng của database và các trường thuộc bảng đó. Cấu hình thuộc tính của các trường đó tương ứng
Trang quản lý file của hệ thống quản trị nội dung. Bạn có thể vào đây để upload các file lên đây để lưu trữ.
Trang phân quyền của hệ thống quản trị nội dung
Trang tích hợp các chức năng mở của hệ thống. Bạn có thể tải về và cài đặt. Đây là phần phát triển mở rộng và luôn được phát triển mới những tính năng hay
Sau khi được cài đặt các tính năng mở rộng bạn vào đây để quản lý và cấu hình các tính năng mở rộng
Cuối cùng là mục Setting được sử dụng để cài đặt và cấu hình các chức năng của hệ thống như On Off các tính năng. Tạo các Trigger và các mối liên hệ giữa các trường nội dung đã tạo
Hệ thống sử dụng các công nghệ hiện đại, ngôn ngữ lập trình tiên tiến và bảo mật. thích ứng nhiều giải pháp và các yêu cầu bài toán đặt ra:
- Multi-databases support:
Hệ thống hỗ trợ nhiều loại hình CSDL và điển hình là SQLite, MongoDB, MySQL, Postgres.
- 100% Javascript:
Ngôn ngữ chính của hệ thống là javascript phù hợp tất cả các môi trường cài đặt ứng dụng.
Theo dự đoán của Vitop Career, sẽ không có bất kỳ sự thay đổi nào đối với ngôi vương của bảng xếp hạng này, và Javascript sẽ không chỉ thống trị bảng xếp hạng này trong năm 2020 mà còn trong vài năm tới.
- Auto-generated documentation
Tài liệu hướng dẫn tự động được tạo ra khi bạn khởi tạo 1 API. Sẽ đi kèm hướng dẫn củ thể cách sử dụng mà API bạn đã tạo ra.
- GraphQL or RESTful
GraphQL là một cú pháp mô tả cách yêu cầu lấy dữ liệu, và thường được dùng để load data từ một server cho client.
GraphQL bao gồm 3 điểm đặc trưng bao gồm cho phép client xác định chính xác những gì dữ liệu họ cần, làm cho việc tổng hợp dữ liệu từ nhiều nguồn dễ dàng hơn và nó sử dụng một type system để mô tả dữ liệu.
REST (REpresentational State Transfer) là một dạng chuyển đổi cấu trúc dữ liệu, một kiểu kiến trúc để viết API. Nó sử dụng phương thức HTTP đơn giản để tạo cho giao tiếp giữa các máy. Vì vậy, thay vì sử dụng một URL cho việc xử lý một số thông tin người dùng, REST gửi một yêu cầu HTTP như GET, POST, DELETE, vv đến một URL để xử lý dữ liệu.
RESTful API là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng web (thiết kế Web services) để tiện cho việc quản lý các resource. Nó chú trọng vào tài nguyên hệ thống (tệp văn bản, ảnh, âm thanh, video, hoặc dữ liệu động…), bao gồm các trạng thái tài nguyên được định dạng và được truyền tải qua HTTP.
Chức năng quan trọng nhất của REST là quy định cách sử dụng các HTTP method (như GET, POST, PUT, DELETE…) và cách định dạng các URL cho ứng dụng web để quản các resource. RESTful không quy định logic code ứng dụng và không giới hạn bởi ngôn ngữ lập trình ứng dụng, bất kỳ ngôn ngữ hoặc framework nào cũng có thể sử dụng để thiết kế một RESTful API.
- Webhooks
Webhook là một công nghệ rất tiện dụng trong việc triển khai các phản ứng sự kiện (event) trên website của bạn. Webhook cung cấp một giải pháp giúp ứng dụng server-side thông báo cho ứng dụng phía client-side khi có sự kiện phát sinh đã xảy ra trên máy chủ (event reaction). Cũng chính vì vậy, ứng dụng client-side sẽ không cần phải liên tục hỏi hoặc check với ứng dụng server-side.
Nhiều người cũng thường gọi Webhook là “Reverse APIs”. Thông thường đối với các API, ứng dụng client-side sẽ gọi ứng dụng server-side. Tuy nhiên khi có webhook, phía server-side sẽ gọi webhook (end-point URL được cung cấp bởi ứng dụng client-side), ví dụ: ứng dụng server-side gọi ứng dụng client-side.
Về mặt cơ bản, Webhook là một tính năng cho phép website tự động thông báo và gửi dữ liệu thời gian thực đến các hệ thống khi có một sự kiện nào đó phát sinh trên website (ví dụ như khánh hàng đăng ký, điền form, mua hàng, hay gửi email) Webhook sẽ giúp hệ thống của bạn chủ động hơn trong việc vận hành cũng như trao đổi thông tin.
- Authentication & Permissions
Hỗ trợ xác thực và phân quyền động. Hệ thống cho phép gán quyền từ động và yêu cầu xác thực theo tài khoản và mật khẩu.
4. Cài đặt ứng dụng.
Đề sử dụng được sản phẩm có 4 cách sau bạn có thể lựa chọn. Ở đây ta chọn cách đầu tiên là cách cài trên localhost (trên máy tính của mình hoặc server localhost)
Bước 1: Bạn cần phải có server cài đặt node.js và npm đồng thời database bạn có thể lựa chọn các loại database mà bạn muốn cài
Bước 2: Khởi tạo project bằng lệnh sau
Bước 3: Chạy ứng dụng
Trên là các bước cài đặt và sử dụng. Chúc các bạn thành công !