真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

openstack-wsgi的route中怎樣增加api

今天就跟大家聊聊有關(guān)openstack-wsgi的route中怎樣增加api,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)是一家集成都網(wǎng)站設(shè)計、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司、網(wǎng)站頁面設(shè)計、網(wǎng)站優(yōu)化SEO優(yōu)化為一體的專業(yè)網(wǎng)站制作公司,已為成都等多地近百家企業(yè)提供網(wǎng)站建設(shè)服務(wù)。追求良好的瀏覽體驗,以探求精品塑造與理念升華,設(shè)計最適合用戶的網(wǎng)站頁面。 合作只是第一步,服務(wù)才是根本,我們始終堅持講誠信,負(fù)責(zé)任的原則,為您進行細心、貼心、認(rèn)真的服務(wù),與眾多客戶在蓬勃發(fā)展的市場環(huán)境中,互促共生。

今天要講解的是當(dāng)我們以后生成了這樣一個url了,下一步wsgi框架又是如何根據(jù)url去調(diào)用nova底層相應(yīng)的代碼。

講解這個之前,先回憶下查看routes已發(fā)布的api。更多詳情請查看文章: openstack_ice之wsgi詳解(paste從ini配置文件->routesr具體發(fā)布流程)

1、首先將route mapper信息打印出來:

vim /usr/lib/python2.6/site-packages/nova/api/openstack/__init__.py    

openstack-wsgi的route中怎樣增加api

重啟openstack-nova-api服務(wù)

service  openstack-nova-api restart    

tailf /var/log/nova/api.log    

openstack-wsgi的route中怎樣增加api

以上打印的route信息,就是底層通過wsgi,將api以添加到route的mapper,發(fā)布給外邊調(diào)用。

2、接下來講解如何添加自定義api,并加入到route mapper中,發(fā)布出來給外部調(diào)用.

注:接下來以網(wǎng)絡(luò)模塊為例,增加一個test_api接口。

下圖為未添加前,network的route信息:

openstack-wsgi的route中怎樣增加api

通過之前的文章分析,找到wsgi的入口:

vim /usr/lib/python2.6/site-packages/nova/api/openstack/compute/contrib/os_networks.py

openstack-wsgi的route中怎樣增加api

os_network為openstack封裝的,用來增加映射route mapper路由的類:

openstack-wsgi的route中怎樣增加api

中添加下圖代碼:test_member:post、test_collection:

openstack-wsgi的route中怎樣增加api

每次添加完成需要重新發(fā)布需要重啟openstack-nova-api服務(wù)。

重啟后查看os-network路由信息如下圖:

openstack-wsgi的route中怎樣增加api

openstack-wsgi的route中怎樣增加api

如上圖發(fā)現(xiàn)test_member、test_collection路由信息發(fā)布成功。

member_actions發(fā)布的api是針對每個特定的對象,例如獲取id為1的person全部信息。因此需要在url前面增加id字段屬性。

collection_actions發(fā)布的api是針對對象集合,例如獲取所有person的信息。

跟多關(guān)于route信息請參考文章: wsgi-restful-routes詳解

3、講解:發(fā)布api成功,后臺的route控制器接收到匹配的url之后,如何控制調(diào)用后臺代碼

url的產(chǎn)生大致有三種方式:

1:用dashboard通過novaclient組裝。(網(wǎng)絡(luò)的由neutronclient組裝,簡單起見,后續(xù)文章默認(rèn)只提及novaclient)

2:通過系統(tǒng)命令例如nova list產(chǎn)生。

3:通過curl自己組裝。

第一和第二種方式,請參考之前對應(yīng)文章詳解。接下來詳細介紹下如果通過curl調(diào)用已發(fā)布的route,開發(fā)自定義api。

注:底層api開發(fā),多采用第三種方式進行。

第一步獲取token:

執(zhí)行nova --debug list:

openstack-wsgi的route中怎樣增加api

其中X-Auth-Token后面的值為需要獲取的token。

第二步:

將token值添加到環(huán)境變量中(也可以不加入環(huán)境變量,每次請求時帶上)

vim  vim .bashrc

openstack-wsgi的route中怎樣增加api

這樣以后就可以直接使用$token獲取token的值。

export .bashrc文件

echo $token將看到token值

第三步:發(fā)送url請求:

curl -i 'http://192.168.1.158:8774/v2/b077619bde964a4eb924db869fba977d/servers/f664204b-d4ec-4d01-aec9-757719a8d06b' -X GET -H "X-Auth-Project-Id: admin" -H "User-Agent: python-novaclient" -H "Accept: application/json" -H "X-Auth-Token:$token"

對應(yīng)的route為:

openstack-wsgi的route中怎樣增加api

當(dāng)執(zhí)行上述url請求時候:則對應(yīng)找到上述路由。

openstack-wsgi的route中怎樣增加api

4、請求自定義的路由test_collection:

openstack-wsgi的route中怎樣增加api

根據(jù)路由信息,拼接url為:

curl -i 'http://192.168.1.158:8774/v2/b077619bde964a4eb924db869fba977d/os-networks/test_collection' -X POST -H "X-Auth-Project-Id: admin" -H "User-Agent: python-novaclient" -H "Accept: application/json" -H "X-Auth-Token:$token"    

錯誤為404沒有找到:
openstack-wsgi的route中怎樣增加api

打開route發(fā)布源碼:

vim /usr/lib/python2.6/site-packages/nova/api/openstack/compute/contrib/os_networks.py

openstack-wsgi的route中怎樣增加api

進入到路由控制器:NetworkController():

openstack-wsgi的route中怎樣增加api

可以看到路由控制器類有方法show(),delete()等。

在控制器類定義test_collection方法,如下圖:

openstack-wsgi的route中怎樣增加api

重啟nova-api服務(wù)添加的代碼生效。(每次修改api模塊代碼則必須重啟服務(wù),后面將不再重復(fù))

再次請求url:

curl -i 'http://192.168.1.158:8774/v2/b077619bde964a4eb924db869fba977d/os-networks/test_collection' -X POST -H "X-Auth-Project-Id: admin" -H "User-Agent: python-novaclient" -H "Accept: application/json" -H "X-Auth-Token:$token"    

openstack-wsgi的route中怎樣增加api

api日志:
openstack-wsgi的route中怎樣增加api

在test_collection函數(shù)中,添加自定義的底層代碼即可。

到此添加底層api完成。

看完上述內(nèi)容,你們對openstack-wsgi的route中怎樣增加api有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


本文題目:openstack-wsgi的route中怎樣增加api
文章起源:http://www.weahome.cn/article/gdpids.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部