鍍金池/ 問答/Java  PHP  Linux/ php 如何寫api給別人使用?

php 如何寫api給別人使用?

我現(xiàn)在需要寫一隻api
是讓別人可以上傳圖片到我的伺服器上的特定目錄夾
但我不知道怎麼著手?
概念是
對(duì)方透過 enctype="multipart/form-data"
可以把圖片丟到我這裡
我會(huì)用json回傳URL給對(duì)方

上傳機(jī)制我已經(jīng)有了

$_FILES['myFile_avatar']
move_uploaded_file
回答
編輯回答
舊時(shí)光
  1. 首先整理下需求,別人上傳到你的伺服器,只上傳文檔么?需不需要額外訊息?
  2. 其次需要設(shè)計(jì)接口:是不是需要統(tǒng)一化的目錄?比如URL可以是www.xxx.com/api/postFile,那么這個(gè)需求怎么通過URL Rewrite來實(shí)現(xiàn);另外通訊使用的方法是GET還是POST(不過你這個(gè)比較明顯需要用到POST);怎么處理用戶發(fā)過來的額外訊息;用戶調(diào)用接口后返回的正確/錯(cuò)誤信息等。
  3. 上邊這些,一個(gè)個(gè)解決掉,然后整理成接口文檔。
  4. 功能上線聯(lián)調(diào)。
2017年11月27日 19:18
編輯回答
舊顏

api 所在的域名是否和 api調(diào)用方 所在的域名是一致的??如果不一致,則要考慮下跨域的問題。

假設(shè) api 所在的域名是:http://api.com,調(diào)用方所在的域名是 http://get.com

我定義了一個(gè) api 如下:

// 如果是api和調(diào)用方在同一個(gè)域名下,那么不用加這個(gè)頭部
// 這邊由于跨域!所以需要加 cors 相關(guān)頭部
// 具體含義請(qǐng)百度
header('Access-Control-Allow-Origin: http://get.com');
header('Access-Control-Allow-Credentials: true');

class UploadFile {
    public function upload(){
        // 圖片上傳處理 ...
    }
}

調(diào)用的時(shí)候 http://api.com/UploadFile/upload 然后加上所需的參數(shù)。


調(diào)用方 js

var apiUrl = 'http://api.com/UploadFile/upload';
// 構(gòu)造表單對(duì)象
var formData = new FormData();
    // 添加文件
    formData.append('file' , file);
var xhr = new XMLHttpRequest();
    xhr.open('post' , apiUrl , true);
    xhr.onreadystatechange = function(){
        ...
    };
    xhr.send(formData);
2017年10月14日 13:09