REST API 및 Python API 문서

이 페이지는 Requirements Portal의 REST API에 대한 참조 정보를 제공합니다. REST API를 사용하면 Requirements Portal에서 데이터를 가져오고 수정할 수 있으며, 데이터를 Requirements Portal에 다시 기록하여 정보를 업데이트할 수도 있습니다. 또한 다른 애플리케이션과 연결하거나 통합할 수 있습니다.

토큰을 사용하여 Requirements Portal의 REST API에 액세스하기

Requirements Portal의 REST API에 액세스하려면 Settings – User Tokens 페이지에서 토큰을 생성할 수 있습니다. (오른쪽 상단의  아이콘을 클릭하고 표시되는 메뉴에서 Settings을 선택한 다음, 왼쪽 창의 목록에서 User Tokens을 선택하면 이 페이지에 액세스할 수 있습니다.) 이 페이지에서 해당 배포 환경의 API address을 확인할 수 있습니다. 이 주소는 API 호출에 필요합니다.

새 토큰을 생성하려면 Settings – User Tokens 페이지 오른쪽 하단의 + 아이콘을 클릭하세요. 각 토큰은 3 months 동안 유효하며, 만료 후에는 다시 생성해야 합니다.

 

access_token을 사용하여 API를 이용하려면 애플리케이션 유형을 "JSON"으로 설정하고, Authorization HTTP 요청 헤더에 "Bearer ..." 형식으로 토큰을 추가해야 합니다.

curl --location 'http://deployment_name/rest/requirements/versions/search/' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer hO2lwhLZsYOgXPNVI' \
--data '{
    "size": 10,
    "query_filters": {
        "object_id": 93
    }
}'

또는 requests를 사용하여 다음과 같이 액세스 토큰을 전송할 수 있습니다.

access_token = 'Generated_Access_token'
api_url = 'Api_Address'

# workspace id and component type

workspace_id = 1
component_type_name = "CompA"

# Define headers with the access token
headers = {
    'Authorization': f'Bearer {access_token}',
    'Content-Type': 'application/json',  # Adjust content type as needed
}

# Make a GET request (you can use other HTTP methods like POST, PUT, etc.)
component_types_workspace = requests.get(api_url + "components/types/?workspace="+str(workspace_id), headers=headers)

Python API 문서

Python API를 사용하면 Python 코드로 배포 환경의 객체에 액세스하고 업데이트할 수 있습니다.

pip로 필요한 Python API 패키지를 설치하세요.

pip install valispace

Python 스크립트에서 API 모듈을 Import하세요.

import valispace

그런 다음 아래와 같이 초기화하세요.

valispace = valispace.API()

API의 기능과 함수에 대한 자세한 정보는 여기에서 확인할 수 있습니다. Python API 패키지는 MIT 라이선스로 제공되므로 누구나 GitHub 저장소를 복제하여 코드에 기여할 수 있습니다.

엔드포인트

사용자는 Swagger 페이지에서 엔드포인트에 액세스할 수 있습니다. 이 페이지에 액세스하려면 Settings – User Tokens 페이지에서 확인할 수 있는 API URL 끝에 swagger/을 추가하세요. 이 페이지에는 모든 기존 엔드포인트가 포함된 Django Swagger가 표시됩니다.

Swagger 페이지에 액세스하려면 your_API_URL/swagger/을 사용하세요. 끝에 있는 /을 생략하면 해당 페이지로 리디렉션되지 않습니다. API URL은 Settings – User Tokens 페이지에서 확인할 수 있습니다.

또는 your_Workspace_URL/requirements/swagger/을 사용하여 페이지에 액세스할 수 있습니다.

GET, POST, PUT, PATCH, DELETE 메서드가 있습니다.

Requirements Portal의 모든 객체에는 고유한 ID가 있습니다. 이 ID를 사용하여 객체를 검색하고 해당 객체의 정보를 가져올 수 있습니다. 객체 ID는 Requirements Portal에서 직접 확인하거나, Requirements Portal에서 객체를 클릭했을 때 표시되는 URL에서 확인할 수 있습니다.

예를 들어 Swagger에서 GET 함수를 사용하여 요구사항 이력 정보를 가져오는 경우, 다음 엔드포인트를 사용하여 요구사항 이력의 세부 정보를 가져올 수 있습니다.

GET /rest/requirements/{requirement-id}/history/

GET을 사용하여 요구사항 이력 정보 가져오기
GET을 사용하여 요구사항 이력 정보 가져오기

마찬가지로 이 메서드들을 사용하여 블록, 태그, valis, textvalis, 요구사항, 사양, 검증 방법 등 다양한 객체를 조회하거나 업데이트하거나 게시할 수 있습니다. 엔드포인트는 Swagger 페이지에서 검색할 수 있습니다.

프로젝트별 객체 필터링

인증 외에도 GET 메서드를 사용하여 배포 환경 내의 Valis 또는 요구사항과 같은 객체를 가져올 수 있습니다. 특정 프로젝트를 기준으로 결과를 필터링해야 하는 경우, 해당 엔드포인트가 이를 지원하도록 구성되어 있다면 필터링 기능을 활용할 수 있습니다. 예를 들어 프로젝트 24와 관련된 요구사항을 가져오려면 다음 GET 요청을 사용할 수 있습니다.

GET /rest/requirements/?project=24

이 기능을 더 쉽게 이해할 수 있도록 아래 동영상에서 시연합니다.

내장 함수

Requirements Portal에서는 사용자가 텍스트 필드에 텍스트를 입력할 때마다 해당 텍스트가 백엔드에 HTML 형식으로 저장됩니다. HTML 형식은 서식과 valis 또는 다른 객체에 대한 참조를 유지합니다. 따라서 요구사항 정보를 가져올 때 Import한 데이터에 HTML 텍스트가 포함될 수 있습니다. 이를 방지하기 위해 HTML 필드를 일반 텍스트로 변환하거나, HTML 서식은 유지하면서 valis를 텍스트로 변환하는 데 유용한 두 가지 함수를 구현했습니다. 이 함수는 clean_text와 clean_html입니다.

Clean_text 함수

clean_text 함수는 필드 내의 모든 HTML 서식과 객체 참조를 텍스트로 변환합니다. 다만 이 경우 서식도 사라집니다. 예를 들어 목록, 표 또는 색상이 있으면 해당 서식도 사라집니다. 아래와 같이 사용할 수 있습니다.

 

여기서는 프로젝트 24를 기준으로 필터링하고, 필드의 텍스트와 근거를 일반 텍스트로 반환하도록 요청합니다. 이 작업의 Output은 다음과 같습니다.

 

Clean_text 함수를 사용한 후의 요구사항

Clean_html 함수

clean_html 함수는 텍스트의 서식 옵션을 유지하면서 valis와 같은 참조 및 객체를 텍스트로 변환합니다. 텍스트에 목록, 배경색, 표 등의 서식 옵션이 포함되어 있으면 해당 정보는 유지됩니다.

 
clean_html 함수를 사용한 후의 요구사항

 

자주 묻는 질문

올바른 엔드포인트는 어떻게 찾나요?

이름이 비슷한 수많은 엔드포인트를 살펴보다 보면 혼란스러울 수 있습니다. 특정 엔드포인트가 확실하지 않은 경우 Altium 지원 페이지에 문의하여 확인하시기 바랍니다. 또는 브라우저의 "네트워크" 기능을 활용하여 소프트웨어의 프런트엔드에서 작업을 수행할 때 어떤 엔드포인트가 호출되는지 확인할 수 있습니다.

예를 들어 블록을 생성하는 과정을 살펴보겠습니다. 이 경우 관련 엔드포인트는 "/rest/components"에 대한 "POST" 요청으로 확인할 수 있으며, 작업 중 네트워크 활동을 살펴보면 이 정보를 쉽게 파악할 수 있습니다. 아래의 짧은 동영상에서 이 방법을 간단히 시연합니다.

AI-LocalizedAI로 번역됨
만약 문제가 있으시다면, 텍스트/이미지를 선택하신 상태에서 Ctrl + Enter를 누르셔서 저희에게 피드백을 보내주세요.
Contents
기능 가용성

사용할 수 있는 기능은 보유한 Altium 솔루션(Altium Develop, Altium Agile Teams, Altium Agile Enterprise, 또는 Altium Designer(활성 기간 중))에 따라 달라집니다.

실제 소프트웨어에서 문서화된 기능이 보이지 않는 경우, Altium 영업팀에 문의하여 자세한 내용을 확인하세요.

Contents