JavaScript is required to for searching.
탐색 링크 건너뛰기
인쇄 보기 종료
Oracle® ZFS Storage Appliance RESTful API 설명서, 릴리스 2013.1.3.0
Oracle Technology Network
라이브러리
PDF
인쇄 보기
피드백
search filter icon
search icon

문서 정보

Oracle ZFS Storage Appliance RESTful API 시작하기

RESTful API 작업

RESTful API 경보 서비스

Analytics Services

하드웨어 서비스

로그 명령

네트워크 명령

RESTful API 문제 서비스

RESTful API 역할 서비스

RESTful API SAN 서비스

서비스 명령

RESTful API 스토리지 서비스

시스템 명령

RESTful API 사용자 서비스

워크플로우 명령

RESTful 클라이언트

Curl Rest 클라이언트

리소스 데이터 가져오기

새 리소스 만들기

기존 리소스 수정

기존 리소스 삭제

Python RESTful 클라이언트

리소스 가져오기

리소스 만들기

리소스 수정

기존 리소스 삭제

Python RESTful 클라이언트

Python RESTful API 클라이언트는 RESTful 서비스의 테스트 개발을 지원하는 REST 테스트 라이브러리와 함께 제공됩니다.

RESTful 클라이언트 프로그램 예:

>>> import urllib2
>>> import json

>>> request = urllib2.Request("https://zfsssa.example:215/api/access/v1", "")
>>> request.add_header("X-Auth-User", "rest_user")
>>> request.add_header("X-Auth-Key", "letmein")
>>> response = urllib2.urlopen(request)
>>> response.getcode()
201

>>> info = response.info()
>>>
        opener = urllib2.build_opener(urllib2.HTTPHandler)
>>> opener.addheaders = [("X-Auth-Session", info.getheader("X-Auth-Session")),
... ('Content-Type', 'application/json'), ('Accept', 'appplication/json')]

그런 다음 opener를 사용하여 이미 사전 인증되었으며 JSON 데이터를 보내고 받을 준비가 완료된 요청을 열 수 있습니다.

리소스 가져오기

다음 Python 코드를 사용하여 RESTful API 리소스에서 데이터를 가져올 수 있습니다.

GET 예:

>>> request = urllib2.Request("https://zfssa:215/api/network/v1/routes")
>>> response = opener.open(request)
>>> response.getcode()
200
>>> body = json.loads(response.read())
>>> print json.dumps(body, sort_keys=True, indent=4)
{
    "routes": [

            {
            "destination": "0.0.0.0",
            "family": "IPv4",

            "gateway": "10.80.231.1",
            "href":
            "/api/network/v1/routes/ixgbe0,0.0.0.0,10.80.231.1",

            "interface": "ixgbe0",
            "mask": 0,
            "type": "static"

            }
    ]
}

리소스 만들기

새 리소스를 만드는 Python 코드 예:

>>> action = {'category': 'network'}
>>> post_data = json.dumps(action)
>>> request = urllib2.Request("https://zfssa:215/api/alert/v1/actions", post_data)
>>> request.add_header('Content-Type', 'application/json')

>>> response = opener.open(request)
>>> response.getcode()
201
>>> response.info().getheader('Location')
'/api/alert/v1/actions/actions-001'
>>> body = json.loads(response.read())
>>> print json.dumps(body, sort_keys=True, indent=4)
{

        "actions": {
        "category": "network",
        "datalink_failed": true,

        "datalink_ok": true,
        "href":
        "/api/alert/v1/actions/actions-001",

        "ip_address_conflict": true,

        "ip_address_conflict_resolved": true,

        "ip_interface_degraded": true,
        "ip_interface_failed":
        true,
        "ip_interface_ok": true,

        "network_port_down": true,
        "network_port_up":
        true
    }
}

리소스 수정

기존 리소스를 수정하는 Python 코드 예:

>>> put_data = '{"ip_address_conflict_resolved": false}'
>>>
        request = urllib2.Request("https://zfssa:215/api/alert/v1/actions/actions-001", put_data)
>>> request.add_header('Content-Type', 'application/json')
>>> request.get_method = lambda: 'PUT'

>>> response = opener.open(request)
>>> response.getcode()
202
>>> body = json.loads(response.read())
>>> print json.dumps(body, sort_keys=True, indent=4)
{

        "actions": {
        "category": "network",
        "datalink_failed": true,

        "datalink_ok": true,
        "href":
        "/api/alert/v1/actions/actions-001",

        "ip_address_conflict": true,

        "ip_address_conflict_resolved": false,

        "ip_interface_degraded": true,
        "ip_interface_failed":
        true,
        "ip_interface_ok": true,

        "network_port_down": true,
        "network_port_up":
        true
    }
}

기존 리소스 삭제

기존 리소스를 삭제하는 Python 코드 예:

>>> request = urllib2.Request("https://zfssa:215/api/alert/v1/actions/actions-001")
>>> request.get_method = lambda: 'DELETE'
>>> response = opener.open(request)
>>> response.getcode()
204