Hướng dẫn rest api header example php - phần còn lại tiêu đề api ví dụ php

Tôi cần gửi cho một số dữ liệu để nghỉ ngơi dịch vụ web. Tôi đã cố gắng mô phỏng API phụ trợ đó hoạt động chính xác nhưng tôi không biết cách ủy quyền cho API đó thông qua tiêu đề.

Trong tiêu đề nên có một: Authorization được đặt vào Bearer token

Đây là những gì tôi đã thử nhưng không thành công.

$host = "www.example.com";
$path = "/path/to/backend";
$arr = array['caseNumber' => '456456787'];
$data = json_encode[$arr];
$token = "ThisIsSomeLongToken";

header["POST ".$path." HTTP/1.1\r\n"];
header["Host: ".$host."\r\n"];
header["Content-type: application/json\r\n"];
header["Authorization: Bearer ".$token." \r\n"];
header["Content-length: " . strlen[$data] . "\r\n"];
header["Connection: close\r\n\r\n"];
header[$data];

Tôi là người mới trong các dịch vụ web trong PHP vì vậy tôi thậm chí không biết liệu điều này có đúng không nhưng nó không gây ra bất kỳ lỗi nào và cũng không làm gì với dịch vụ web.

Tôi có thể hy vọng một số khách hàng tiềm năng trong API REST PHP với các tiêu đề không? Cảm ơn

Hỏi ngày 11 tháng 8 năm 2015 lúc 11:51Aug 11, 2015 at 11:51

Bạn không thể gửi yêu cầu POST bằng cách sử dụng chức năng header[]. Bạn nên sử dụng cURL cho điều đó. Kiểm tra tài liệu ở đây. Điều này có thể sẽ làm những gì bạn muốn:
This will probably do what you want:

$host = "www.example.com";
$path = "/path/to/backend";
$arr = array['caseNumber' => '456456787'];
$token = "ThisIsSomeLongToken";

$ch = curl_init[];

// endpoint url
curl_setopt[$ch, CURLOPT_URL, $host . $path];

// set request as regular post
curl_setopt[$ch, CURLOPT_POST, true];

// set data to be send
curl_setopt[$ch, CURLOPT_POSTFIELDS, http_build_query[$arr]];

// set header
curl_setopt[$ch, CURLOPT_HTTPHEADER, array['Bearer: ' . $token]];

// return transfer as string
curl_setopt[$ch, CURLOPT_RETURNTRANSFER, true];

$response = curl_exec[$ch];

curl_close[$ch];

Đã trả lời ngày 11 tháng 8 năm 2015 lúc 12:02Aug 11, 2015 at 12:02

Jan.JJan.JJan.J

3.0101 Huy hiệu vàng23 Huy hiệu bạc32 Huy hiệu đồng1 gold badge23 silver badges32 bronze badges

0

Chào Reddit,

Tôi đang xây dựng dự án lớn đầu tiên của mình bằng Php và JavaScript, bằng cách thực hiện API REST để đăng và lấy dữ liệu từ cơ sở dữ liệu bằng PDO. Cho đến bây giờ, tôi đã sao chép tiêu đề [] khi bắt đầu điểm cuối PHP vào tất cả các điểm cuối phù hợp [nghĩa là nhận được với Get và Post với bài đăng, luôn luôn cho JSON]. Bây giờ, tôi đang tự hỏi liệu tôi có cần tất cả chúng có tính đến

  • Tôi đang lưu trữ trang web của mình trên máy chủ Apache2, có API trong cùng Vhost với Frontend của tôi, vì vậy tôi không cần CORS.

  • Tôi chỉ xác thực với JWT cho các yêu cầu POST và gửi nó qua tải trọng.

Các đoạn trích tôi sao chép mỗi lần là: Get [JSON]

header['Access-Control-Allow-Origin: *'];

header['Content-Type: application/json'];

header["Access-Control-Allow-Methods: GET"];

header["Allow: GET, POST, OPTIONS, PUT, DELETE"];

$host = "www.example.com";
$path = "/path/to/backend";
$arr = array['caseNumber' => '456456787'];
$token = "ThisIsSomeLongToken";

$ch = curl_init[];

// endpoint url
curl_setopt[$ch, CURLOPT_URL, $host . $path];

// set request as regular post
curl_setopt[$ch, CURLOPT_POST, true];

// set data to be send
curl_setopt[$ch, CURLOPT_POSTFIELDS, http_build_query[$arr]];

// set header
curl_setopt[$ch, CURLOPT_HTTPHEADER, array['Bearer: ' . $token]];

// return transfer as string
curl_setopt[$ch, CURLOPT_RETURNTRANSFER, true];

$response = curl_exec[$ch];

curl_close[$ch];
0

POST [JSON]:

header['Access-Control-Allow-Origin: *'];header['Content-Type: application/json'];

$host = "www.example.com";
$path = "/path/to/backend";
$arr = array['caseNumber' => '456456787'];
$token = "ThisIsSomeLongToken";

$ch = curl_init[];

// endpoint url
curl_setopt[$ch, CURLOPT_URL, $host . $path];

// set request as regular post
curl_setopt[$ch, CURLOPT_POST, true];

// set data to be send
curl_setopt[$ch, CURLOPT_POSTFIELDS, http_build_query[$arr]];

// set header
curl_setopt[$ch, CURLOPT_HTTPHEADER, array['Bearer: ' . $token]];

// return transfer as string
curl_setopt[$ch, CURLOPT_RETURNTRANSFER, true];

$response = curl_exec[$ch];

curl_close[$ch];
3header["Allow: GET, POST, OPTIONS, PUT, DELETE"];
$host = "www.example.com";
$path = "/path/to/backend";
$arr = array['caseNumber' => '456456787'];
$token = "ThisIsSomeLongToken";

$ch = curl_init[];

// endpoint url
curl_setopt[$ch, CURLOPT_URL, $host . $path];

// set request as regular post
curl_setopt[$ch, CURLOPT_POST, true];

// set data to be send
curl_setopt[$ch, CURLOPT_POSTFIELDS, http_build_query[$arr]];

// set header
curl_setopt[$ch, CURLOPT_HTTPHEADER, array['Bearer: ' . $token]];

// return transfer as string
curl_setopt[$ch, CURLOPT_RETURNTRANSFER, true];

$response = curl_exec[$ch];

curl_close[$ch];
0
header['Content-Type: application/json'];
$host = "www.example.com";
$path = "/path/to/backend";
$arr = array['caseNumber' => '456456787'];
$token = "ThisIsSomeLongToken";

$ch = curl_init[];

// endpoint url
curl_setopt[$ch, CURLOPT_URL, $host . $path];

// set request as regular post
curl_setopt[$ch, CURLOPT_POST, true];

// set data to be send
curl_setopt[$ch, CURLOPT_POSTFIELDS, http_build_query[$arr]];

// set header
curl_setopt[$ch, CURLOPT_HTTPHEADER, array['Bearer: ' . $token]];

// return transfer as string
curl_setopt[$ch, CURLOPT_RETURNTRANSFER, true];

$response = curl_exec[$ch];

curl_close[$ch];
3
header["Allow: GET, POST, OPTIONS, PUT, DELETE"];
$host = "www.example.com";
$path = "/path/to/backend";
$arr = array['caseNumber' => '456456787'];
$token = "ThisIsSomeLongToken";

$ch = curl_init[];

// endpoint url
curl_setopt[$ch, CURLOPT_URL, $host . $path];

// set request as regular post
curl_setopt[$ch, CURLOPT_POST, true];

// set data to be send
curl_setopt[$ch, CURLOPT_POSTFIELDS, http_build_query[$arr]];

// set header
curl_setopt[$ch, CURLOPT_HTTPHEADER, array['Bearer: ' . $token]];

// return transfer as string
curl_setopt[$ch, CURLOPT_RETURNTRANSFER, true];

$response = curl_exec[$ch];

curl_close[$ch];
0

Post [formData, để tải lên hình ảnh]:

header['Access-Control-Allow-Origin: *'];

$host = "www.example.com";
$path = "/path/to/backend";
$arr = array['caseNumber' => '456456787'];
$token = "ThisIsSomeLongToken";

$ch = curl_init[];

// endpoint url
curl_setopt[$ch, CURLOPT_URL, $host . $path];

// set request as regular post
curl_setopt[$ch, CURLOPT_POST, true];

// set data to be send
curl_setopt[$ch, CURLOPT_POSTFIELDS, http_build_query[$arr]];

// set header
curl_setopt[$ch, CURLOPT_HTTPHEADER, array['Bearer: ' . $token]];

// return transfer as string
curl_setopt[$ch, CURLOPT_RETURNTRANSFER, true];

$response = curl_exec[$ch];

curl_close[$ch];
7
$host = "www.example.com";
$path = "/path/to/backend";
$arr = array['caseNumber' => '456456787'];
$token = "ThisIsSomeLongToken";

$ch = curl_init[];

// endpoint url
curl_setopt[$ch, CURLOPT_URL, $host . $path];

// set request as regular post
curl_setopt[$ch, CURLOPT_POST, true];

// set data to be send
curl_setopt[$ch, CURLOPT_POSTFIELDS, http_build_query[$arr]];

// set header
curl_setopt[$ch, CURLOPT_HTTPHEADER, array['Bearer: ' . $token]];

// return transfer as string
curl_setopt[$ch, CURLOPT_RETURNTRANSFER, true];

$response = curl_exec[$ch];

curl_close[$ch];
3header["Allow: GET, POST, OPTIONS, PUT, DELETE"];Authorization0
$host = "www.example.com";
$path = "/path/to/backend";
$arr = array['caseNumber' => '456456787'];
$token = "ThisIsSomeLongToken";

$ch = curl_init[];

// endpoint url
curl_setopt[$ch, CURLOPT_URL, $host . $path];

// set request as regular post
curl_setopt[$ch, CURLOPT_POST, true];

// set data to be send
curl_setopt[$ch, CURLOPT_POSTFIELDS, http_build_query[$arr]];

// set header
curl_setopt[$ch, CURLOPT_HTTPHEADER, array['Bearer: ' . $token]];

// return transfer as string
curl_setopt[$ch, CURLOPT_RETURNTRANSFER, true];

$response = curl_exec[$ch];

curl_close[$ch];
7
$host = "www.example.com";
$path = "/path/to/backend";
$arr = array['caseNumber' => '456456787'];
$token = "ThisIsSomeLongToken";

$ch = curl_init[];

// endpoint url
curl_setopt[$ch, CURLOPT_URL, $host . $path];

// set request as regular post
curl_setopt[$ch, CURLOPT_POST, true];

// set data to be send
curl_setopt[$ch, CURLOPT_POSTFIELDS, http_build_query[$arr]];

// set header
curl_setopt[$ch, CURLOPT_HTTPHEADER, array['Bearer: ' . $token]];

// return transfer as string
curl_setopt[$ch, CURLOPT_RETURNTRANSFER, true];

$response = curl_exec[$ch];

curl_close[$ch];
3
header["Allow: GET, POST, OPTIONS, PUT, DELETE"];
Authorization0

Vì vậy, điều tôi muốn là loại bỏ tất cả những thứ tôi không cần và đảm bảo ứng dụng của mình nhiều nhất có thể. Nhưng tôi cảm thấy như tôi đã sao chép những thứ tôi không cần [đây là lần đầu tiên tôi xây dựng API REST] ​​và hơi lạc lõng và lo lắng về khả năng có một lỗ hổng bảo mật lớn mà ai đó có thể khai thác [mặc dù điều này là một dự án mà tôi mong đợi số lượng người dùng thấp].

Bất kỳ sự giúp đỡ được đánh giá cao! Cảm ơn trước!

Các tiêu đề trong ví dụ API REST là gì?

Tiêu đề API giống như một nguồn thông tin bổ sung cho mỗi API gọi bạn thực hiện. Công việc của họ là đại diện cho dữ liệu meta liên quan đến yêu cầu và phản hồi API. Nếu bạn từng gặp phải vấn đề với API, nơi đầu tiên bạn nên xem là các tiêu đề, vì chúng có thể giúp bạn theo dõi mọi vấn đề tiềm năng.an extra source of information for each API call you make. Their job is to represent the meta-data associated with an API request and response. If you ever encounter issues with an API, the first place you should look is the headers, since they can help you track down any potential issues.

Chúng ta có thể viết API REST trong PHP không?

Có nhiều khung tuyệt vời có thể giúp bạn xây dựng API REST một cách nhanh chóng.Nền tảng API của Laravel/lum và Symfony là những ví dụ được sử dụng thường xuyên nhất trong hệ sinh thái PHP.Chúng cung cấp các công cụ tuyệt vời để xử lý các yêu cầu và tạo các phản hồi JSON với mã trạng thái HTTP chính xác.Laravel/Lumen and Symfony's API platform are the most often used examples in the PHP ecosystem. They provide great tools to process requests and generate JSON responses with the correct HTTP status codes.

Tiêu đề trong API REST là gì?

Tiêu đề phản hồi cung cấp thông tin về trạng thái của yêu cầu và trả về thông tin ETAG.Phản hồi cũng bao gồm một mã trạng thái.HTTP xác định một tập hợp các tiêu đề yêu cầu và tiêu đề phản hồi tiêu chuẩn.provide information about the status of the request, and return ETag information. The response also includes a status code. HTTP defines a set of standard request and response headers.

API trong PHP với ví dụ là gì?

Giao diện lập trình ứng dụng hoặc API, xác định các lớp, phương thức, chức năng và biến mà ứng dụng của bạn sẽ cần gọi để thực hiện nhiệm vụ mong muốn của nó.Trong trường hợp các ứng dụng PHP cần giao tiếp với cơ sở dữ liệu, các API cần thiết thường được hiển thị thông qua các tiện ích mở rộng PHP.defines the classes, methods, functions and variables that your application will need to call in order to carry out its desired task. In the case of PHP applications that need to communicate with databases the necessary APIs are usually exposed via PHP extensions.

Bài Viết Liên Quan

Chủ Đề