Instantnoodle現時的WebAPI已經受Azure AD保護,平時直接輸入URL的方式已經不能夠正常訪問到WebAPI
所有API都可以Swagger頁面找到
http://getazdevnt002.chinacloudapp.cn/sprint9/swagger/ui/index
例如請求:http://getazdevnt002.chinacloudapp.cn/sprint9/api/v1/masterdata,請求后會直接提示沒有權限
http://getazdevnt002.chinacloudapp.cn/sprint9/api/v1/masterdata
因為受保護的WebAPI需要有授權才能夠進入
首先打開一個新的Chrome瀏覽器窗口,並打開F12高度工具,並在瀏覽地址欄中輸入以下URL
以下是完整的URL地址
https://login.microsoftonline.com/29abf16e-95a2-4d13-8d51-6db1b775d45b/oauth2/authorize? client_id=c7dab103-ce04-42cd-b199-e510e95334c5 &response_type=token+id_token &redirect_uri=https://designer-workbench.azurewebsites.net &response_mode=form_post &scope=openid &state=12345 &nonce=7362CAEA-9CA5-4B43-9BA3-34D7C303EBA7 &resource=https://esquel.onmicrosoft.com/705cadd7-d8b2-44f7-9c28-3841c112f04b
從調試工具中Newwork選項卡,Headers中,可以看到Request Headers可以看到返回的參數
重新打開Postman,並輸入后台WebAPI地址,例如http://getazdevnt002.chinacloudapp.cn/sprint9/api/v1/masterdata,並在Headers中加入Authorization參數,參數的值是請求返回的"Bearer"+空格+AccessToken,再次點擊Send已經能夠正常返回數據了。
http://getazdevnt002.chinacloudapp.cn/sprint9/api/v1/masterdata
Post方式也是沒有問題的
http://getazdevnt002.chinacloudapp.cn/Sprint9/api/v1/stylelibrary/search/1/1
以上即是使用Postman訪問受保護的WebAPI的方式
或者直接請求的方式
https://login.microsoftonline.com/29abf16e-95a2-4d13-8d51-6db1b775d45b/oauth2/token
grant_type:client_credentials client_id:741a869c-ce4c-46c0-8794-60a6391293ca client_secret:QQjwdZJN+ZYK58o7EMZJhzNpxOABTGa1mxttkYhHuZo= resource:https://esquel.onmicrosoft.com/705cadd7-d8b2-44f7-9c28-3841c112f04b
如果做到此步都還是無法獲取數據,並且提示401,請聯系Wes Chen /GET/IT