programming4:api
Khác biệt
Đây là những khác biệt giữa hai phiên bản của trang.
Phiên bản trước của cả hai bênPhiên bản trướcPhiên bản sau | Phiên bản trướcPhiên bản cuốiPhiên bản sau của cả hai bên | ||
programming4:api [2021/09/01 13:54] – [API của module] webvang | programming4:api [2023/12/19 08:14] – [Lệnh gọi API rewrite (không gọi vào /api.php) lỗi 404] hoaquynhtim99 | ||
---|---|---|---|
Dòng 2: | Dòng 2: | ||
> Hệ thống API được đưa vào kể từ phiên bản 4.5.00 | > Hệ thống API được đưa vào kể từ phiên bản 4.5.00 | ||
+ | |||
+ | Xem mô tả luồng truy vấn thông thường và API như ảnh bên dưới | ||
+ | |||
+ | {{ : | ||
===== Dành cho nhà phát triển sử dụng API ===== | ===== Dành cho nhà phát triển sử dụng API ===== | ||
Dòng 288: | Dòng 292: | ||
<code php> | <code php> | ||
- | Api:: | + | Api:: |
Api:: | Api:: | ||
- | Api:: | + | Api:: |
</ | </ | ||
Dòng 369: | Dòng 373: | ||
</ | </ | ||
- | ** Bước 3 thêm giá trị api vào file ngôn ngữ của module | + | ** Bước 3 thêm giá trị api vào file ngôn ngữ của module |
* $lang_module[' | * $lang_module[' | ||
* $lang_module[' | * $lang_module[' | ||
Dòng 380: | Dòng 384: | ||
* namespace là '' | * namespace là '' | ||
+ | |||
+ | ==== Cách gọi API nội bộ ==== | ||
+ | |||
+ | Ta có thể dùng hàm '' | ||
+ | <code php> | ||
+ | $return = nv_local_api($cmd, | ||
+ | </ | ||
+ | |||
+ | Trong đó: | ||
+ | * $return: là kết quả API trả về | ||
+ | * $cmd: là tương ứng với action khi remote | ||
+ | * $params: là mảng data nó sẽ được chuyển thành biến $_POST | ||
+ | * $adminidentity: | ||
+ | * $module: tương ứng với module khi remote | ||
+ | |||
+ | Ví dụ: Với cách gọi qua CURL thông thường, ta cần phải làm các bước sau: | ||
+ | <code php> | ||
+ | $agent = ' | ||
+ | $safe_mode = (ini_get(' | ||
+ | $open_basedir = ini_get(' | ||
+ | |||
+ | $ch = curl_init(); | ||
+ | curl_setopt($ch, | ||
+ | curl_setopt($ch, | ||
+ | |||
+ | if (!$safe_mode and !$open_basedir) { | ||
+ | | ||
+ | | ||
+ | } | ||
+ | |||
+ | $params= [ | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | | ||
+ | //Các dữ liệu cần thiết, ví dụ ở đây ta sẽ truyền userid | ||
+ | ' | ||
+ | ]; | ||
+ | |||
+ | $str = http_build_query($request); | ||
+ | curl_setopt($ch, | ||
+ | curl_setopt($ch, | ||
+ | curl_setopt($ch, | ||
+ | curl_setopt($ch, | ||
+ | curl_setopt($ch, | ||
+ | $return = curl_exec($ch); | ||
+ | curl_close($ch); | ||
+ | </ | ||
+ | |||
+ | Với hàm '' | ||
+ | <code php> | ||
+ | $params= [ | ||
+ | ' | ||
+ | ]; | ||
+ | $return = nv_local_api(' | ||
+ | /* | ||
+ | | ||
+ | * $return: Dữ liệu API sẽ trả về | ||
+ | * ' | ||
+ | * $params: Mảng dữ liệu truyền vào API | ||
+ | * ' | ||
+ | * ' | ||
+ | */ | ||
+ | </ | ||
+ | Có thể xem thêm về hàm '' | ||
+ | |||
+ | ===== Gỡ lỗi API ===== | ||
+ | |||
+ | ==== Lệnh gọi API rewrite (không gọi vào /api.php) lỗi 404 ==== | ||
+ | |||
+ | |||
+ | Kiểm tra xem máy chủ có hỗ trợ rewrite hay không là điều kiện đầu tiên. Nếu có hỗ trợ thì check lần lượt các hướng bên dưới. | ||
+ | |||
+ | **Nếu máy chủ sử dụng Apache** | ||
+ | |||
+ | * Tìm trong httpd.conf (hoặc các file config tương đương) thẻ `< | ||
+ | * Tìm trong .htaccess ngay thư mục gốc website nếu không có thì thêm vào đoạn sau | ||
+ | |||
+ | < | ||
+ | < | ||
+ | Options -MultiViews | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | * Nếu thêm vào vẫn không hoạt động thì cần cài thêm [[https:// | ||
programming4/api.txt · Sửa đổi lần cuối: 2023/12/19 08:14 bởi hoaquynhtim99