Xin chào các nhà phát triển, trong blog này, tôi sẽ chỉ cho bạn cách tạo API REST của Symfony 5. API REST được sử dụng để giao tiếp giữa máy khách và máy chủ. REST là viết tắt của chuyển trạng thái đại diện và API là viết tắt của giao diện lập trình ứng dụng. API REST hay còn được gọi là API RESTful là một loại API sử dụng kiểu kiến trúc REST, một API được sử dụng REST nếu có đặc điểm này
- Client-Server – Giao tiếp giữa Client và Server
- Không trạng thái – Sau khi máy chủ hoàn thành yêu cầu http, không có thông tin phiên nào được giữ lại trên máy chủ
- Có thể lưu vào bộ nhớ cache – Phản hồi từ máy chủ có thể được lưu vào bộ nhớ cache hoặc không thể lưu vào bộ nhớ cache
- Giao diện thống nhất - Đây là những ràng buộc giúp đơn giản hóa mọi thứ. Các ràng buộc là Xác định tài nguyên, thao tác tài nguyên thông qua các biểu diễn, thông báo tự mô tả, hypermedia làm công cụ của trạng thái ứng dụng
- Hệ thống phân lớp – Đây là những trung gian giữa máy khách và máy chủ như máy chủ proxy, máy chủ bộ đệm, v.v.
- Mã theo yêu cầu [Tùy chọn] – Đây là tùy chọn, khả năng máy chủ gửi mã thực thi tới máy khách như java applet hoặc mã JavaScript, v.v.
Bây giờ bạn đã có một chút hiểu biết về REST API. bây giờ chúng ta sẽ tiếp tục tạo cái này trên Symfony 5
Symfony là gì? . Symfony là một trong những khung công tác PHP hàng đầu để tạo trang web và ứng dụng web
Điều kiện tiên quyết
- nhà soạn nhạc
- SymfonyCLI
- mysql
- PHP >= 7. 2. 5
Bước 1. Cài đặt Symfony 5
Đầu tiên, chọn một thư mục mà bạn muốn cài đặt Symfony, sau đó thực hiện lệnh này trên Terminal hoặc CMD để cài đặt
Cài đặt qua nhà soạn nhạc
composer create-project symfony/skeleton symfony-5-rest-api
Cài đặt qua Symfony CLI
symfony new symfony-5-rest-api
Bước 2. Cài đặt gói
Sau khi cài đặt Symfony, chúng ta phải cài đặt các gói cần thiết cho API REST của mình. Trong quá trình cài đặt các gói, nó sẽ yêu cầu bạn thực hiện công thức, gõ y để xác nhận
composer require jms/serializer-bundle composer require friendsofsymfony/rest-bundle composer require symfony/maker-bundle composer require symfony/orm-pack
Bước 3. Định cấu hình gói FOSRest
Mở tệp config/packages/fos_rest. yaml và thêm những dòng này
cấu hình/gói/fos_rest. khoai mỡ
fos_rest: format_listener: rules: - { path: ^/api, prefer_extension: true, fallback_format: json, priorities: [ json, html ] }
Bước 4. Đặt cấu hình cơ sở dữ liệu
Sau khi cài đặt, mở. env và đặt cấu hình cơ sở dữ liệu. Chúng tôi sẽ sử dụng MySQL trong hướng dẫn này. Bỏ ghi chú biến DATABASE_URL cho MySQL và cập nhật cấu hình của nó. Đảm bảo rằng bạn đã nhận xét các biến DATABASE_URL khác
env
# In all environments, the following files are loaded if they exist, # the latter taking precedence over the former: # # * .env contains default values for the environment variables needed by the app # * .env.local uncommitted file with local overrides # * .env.$APP_ENV committed environment-specific defaults # * .env.$APP_ENV.local uncommitted environment-specific overrides # # Real environment variables win over .env files. # # DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES. # # Run "composer dump-env prod" to compile .env files for production use [requires symfony/flex >=1.2]. # //symfony.com/doc/current/best_practices.html#use-environment-variables-for-infrastructure-configuration ###> symfony/framework-bundle ### APP_ENV=dev APP_SECRET=e0710317861221371d185cc932acd15b ###< symfony/framework-bundle ### ###> doctrine/doctrine-bundle ### # Format described at //www.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url # IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml # # DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db" # DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/db_name?serverVersion=5.7" DATABASE_URL="postgresql://db_user:db_password@127.0.0.1:5432/db_name?serverVersion=13&charset=utf8" ###< doctrine/doctrine-bundle ###
Sau khi cấu hình cơ sở dữ liệu, hãy thực hiện lệnh này để tạo cơ sở dữ liệu
php bin/console doctrine:database:create
Bước 4. Tạo thực thể và di chuyển
Thực thể– nó là một lớp đại diện cho một bảng cơ sở dữ liệu
Di chuyển – chẳng hạn như kiểm soát phiên bản cho cơ sở dữ liệu cho phép chúng tôi sửa đổi và chia sẻ lược đồ cơ sở dữ liệu với nhóm của bạn
Thực hiện lệnh này để tạo một Thực thể
php bin/console make:entity
Sau khi thực hiện lệnh trên, nó sẽ đặt câu hỏi – làm theo các bước bên dưới
Class name of the entity to create or update [e.g. BraveElephant]: > Project Project created: src/Entity/Project.php created: src/Repository/ProjectRepository.php Entity generated! Now let's add some fields! You can always add more fields later manually or by re-running this command. New property name [press to stop adding fields]: > name Field type [enter ? to see all types] [string]: > string string Field length [255]: > 255 Can this field be null in the database [nullable] [yes/no] [no]: > no updated: src/Entity/Project.php Add another property? Enter the property name [or press to stop adding fields]: > description Field type [enter ? to see all types] [string]: > text text Can this field be null in the database [nullable] [yes/no] [no]: > no Add another property? Enter the property name [or press to stop adding fields]: > Success! Next: When you're ready, create a migration with php bin/console make:migration
Bây giờ chúng ta đã hoàn thành việc tạo một thực thể, sau đó chúng ta sẽ tạo một quá trình di chuyển
________số 8_______
Điều này sẽ tạo một tệp di chuyển, bên trong tệp di chuyển có chứa SQL. sau đó chúng tôi sẽ chạy SQL bằng lệnh này