API 활용 가이드
오소리 프로젝트가 사용자에게 제공하는 API 사용법에 대해서 설명합니다.
WARNINGAPI 사용제한: 오소리 사용자 API는 다음과 같은 사용제한이 걸려 있습니다.
한 시간당 최대 5,000번 이상의 API 호출이 시도되면, Too Many Request 예외가 발생합니다.
사용자 API URL 주소
오소리 사용자 API v2.0 (Swagger UI) : 링크
라이선스 목록 조회
/api/v2/user/licenses
NOTE오소리에 등록되어 있는 라이선스 정보를 조회할 수 있는 API 입니다.
Query 매개변수 정보
Name | Type | required | Description |
---|---|---|---|
name
|
string
|
N
|
라이선스 이름
예) MIT License |
webpage
|
string
|
N
|
라이선스 고지문 URL 주소
예) https://opensource.org/licenses/MIT |
equalFlag
|
string
|
Y
|
검색결과 대상을 지정할 때 사용합니다.
- ‘Y’: 검색어가 정확히 일치하는 검색 결과 표시 - ‘N’(기본값): 검색어가 포함된 모든 검색 결과 표시 |
page
|
int
|
Y
|
시작 page 숫자(필수값)
- 기본값: 0 |
sort
|
string
|
Y
|
정렬 기준 항목(필수값)
정렬 기준에 사용할 수 있는 항목은 아래와 같습니다. - name - nickname - id - spdx_identifier |
spdxIdentifier
|
string
|
N
|
spdx 라이선스 identifier
예) MIT |
modifiedDate
|
string
|
N
|
수정일
format : "yyyy-mm-dd" |
size
|
int
|
Y
|
page에서 가져올 데이터 개수(필수값)
default : 1 |
direction
|
string
|
N
|
정렬 방향
- ASC: 오름차순 (기본값) - DESC: 내림차순 |
사용 예제
curl –location –request GET "https://{osori_base_url}/api/v2/user/licenses?name=Free License&modifiedDate=2023-07-12&equalFlag=N&page=0&size=10&sort=name&direction=ASC"
응답 Header
Content-Type application/json
응답 Body
{
"code": "200",
"messageList": {
"list": [
{
"rownum": 1.0,
"osi_approval": true,
"name": "Academic Free License v2.2",
"obligation_notification": true,
"id": 4,
"obligation_disclosing_src": "NONE"
}
],
"count": 4,
"page": 0,
"size": 10
},
"success": true
}
응답 항목 의미
Depth 1 | Depth 2 | Depth 3 | Depth 4 | Depth 5 | Type | Description |
---|---|---|---|---|---|---|
code
|
|
|
|
|
string
|
API 응답 상태값
200: 성공 |
messageList
|
|
|
|
|
object
|
|
|
list
|
|
|
|
array
object |
|
|
|
name
|
|
|
string
|
라이선스 이름
|
|
|
obligation_disclosing_src
|
|
|
string
|
배포시 소스 코드 공개 범위
- NONE - ORIGINAL - FILE - MODULE - LIBRARY - DERIVATIVE WORK - EXECUTABLE - DATA - SOFTWARE USING THIS - UNSPECIFIED |
|
|
obligation_notification
|
|
|
boolean
|
배포시 고지 의무
- false : 고지 의무 없음 - true : 고지 의무 있음 |
|
|
osi_approval
|
|
|
boolean
|
OSI에서 승인한 라이선스인지 여부
(https://opensource.org/licenses/) |
|
count
|
|
|
|
int
|
검색 결과 전체 총 레코드 수
|
|
page
|
|
|
|
int
|
list 의 현재 page 값
|
|
size
|
|
|
|
int
|
page별 list count 값
|
success
|
|
|
|
|
boolean
|
API 동작 결과
- false : 실패 - true : 성공 |
라이선스 상세 정보 조회
/api/v2/user/licenses/{category}
NOTE오소리에 등록되어 있는 라이선스 상세 정보를 조회할 수 있는 API 입니다.
Query 매개변수 정보
Name | Type | required | Description |
---|---|---|---|
searchWord
|
string
|
Y
|
검색에 사용할 단어를 입력합니다.
예) MIT |
page
|
int
|
Y
|
시작 page 숫자(필수값)
- 기본값: 0 |
sort
|
string
|
Y
|
정렬 기준 항목(필수값)
정렬 기준에 사용할 수 있는 항목은 아래와 같습니다. - name - nickname - id - spdx_identifier |
size
|
int
|
Y
|
page에서 가져올 데이터 개수(필수값)
default : 1 |
direction
|
string
|
N
|
정렬 방향
- ASC: 오름차순 (기본값) - DESC: 내림차순 |
사용 예제
curl –location –request GET "https://{osori_base_url}/api/v2/user/licenses/name?searchWord=Apache License 1.1"
응답 Header
Content-Type application/json
응답 Body
{
"code": "200",
"messageList": {
"detailInfo": [
{
"spdx_identifier": "Apache-1.1",
"obligation_notification": true,
"description": null,
"obligation_disclosing_src": "NONE",
"description_ko": null,
"modified_date": "2023-10-31T05:15:57.000+00:00",
"webpageList": null,
"rownum": 1.0,
"osi_approval": true,
"license_text": "Apache License 1.1 \n\nCopyright (c) 2000 The Apache Software Foundation. All rights reserved. \n\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source cod ",
"name": "Apache License 1.1",
"nicknameList": [
"Apache 1.1",
"Apache License v.1.1",
"Apache Software License version 1.1",
"APACHE1.1"
],
"id": 11,
"webpage": "https://spdx.org/licenses/Apache-1.1.html",
"created_date": "2023-10-24T06:46:20.000+00:00",
"restrictionList": null
}
],
"count": 1,
"page": 0,
"size": 10
},
"success": true
}
응답 항목 의미
Depth 1 | Depth 2 | Depth 3 | Depth 4 | Depth 5 | Type | Description |
---|---|---|---|---|---|---|
code
|
|
|
|
|
string
|
API 응답 상태값
200: 성공 |
messageList
|
|
|
|
|
object
|
|
|
detailInfo
|
|
|
|
array
object |
|
|
|
id
|
|
|
int
|
조회 대상의 ID (primary Key)
|
|
|
name
|
|
|
string
|
라이선스 이름
|
|
|
webpage
|
|
|
string
|
라이선스 url
|
|
|
obligation_disclosing_src
|
|
|
string
|
배포시 소스 코드 공개 범위
- NONE - ORIGINAL - FILE - MODULE - LIBRARY - DERIVATIVE WORK - EXECUTABLE - DATA - SOFTWARE USING THIS - UNSPECIFIED |
|
|
obligation_notification
|
|
|
boolean
|
배포시 고지 의무
- false : 고지 의무 없음 - true : 고지 의무 있음 |
|
|
spdx_identifier
|
|
|
string
|
spdx identifier 이름
|
|
|
description
|
|
|
string
|
라이선스에 대한 설명(영어)
|
|
|
|
description_ko
|
|
string
|
라이선스에 대한 설명(한글)
|
|
|
license_text
|
|
|
string
|
라이선스 고지문
|
|
|
osi_approval
|
|
|
boolean
|
OSI에서 승인한 라이선스인지 여부
(https://opensource.org/licenses/) |
|
|
created_date
|
|
|
string
|
데이터 등록일
|
|
|
modified_date
|
|
|
string
|
데이터 수정일
|
|
|
webpageList
|
|
|
array string
|
라이선스 고지문 출처 등 url 목록
|
|
|
nicknameList
|
|
|
array string
|
라이선스의 별명 목록
|
|
|
restrictionList
|
|
|
array object
|
라이선스가 가지고 있는 제약사항 목록
|
|
|
|
id
|
|
int
|
제약사항 ID
|
|
|
|
name
|
|
string
|
제약사항 이름
|
|
|
|
level
|
|
int
|
제약사항 제약레벨
|
|
count
|
|
|
|
int
|
검색 결과 전체 총 레코드 수
|
|
Page
|
|
|
|
int
|
list 의 현재 page 값
|
|
Size
|
|
|
|
int
|
page별 list count 값
|
success
|
|
|
|
|
boolean
|
API 동작 결과
- false : 실패 - true : 성공 |
오픈소스 목록 조회
/api/v2/user/oss
NOTE오소리에 등록되어 있는 오픈소스 정보를 조회할 수 있는 API 입니다.
Query 매개변수 정보
Name | Type | required | Description |
---|---|---|---|
ossName
|
string
|
N
|
오픈소스 이름
|
version
|
string
|
N
|
오픈소스 버전 정보
|
equalFlag
|
string
|
Y
|
검색결과 대상을 지정할 때 사용합니다.
- ‘Y’: 검색어가 정확히 일치하는 검색 결과 표시 - ‘N’(기본값): 검색어가 포함된 모든 검색 결과 표시 |
page
|
int
|
Y
|
시작 page 숫자(필수값)
- 기본값: 0 |
sort
|
string
|
Y
|
정렬 기준 항목(필수값)
정렬 기준에 사용할 수 있는 항목은 아래와 같습니다. - name - nickname - version |
downloadLocation
|
string
|
N
|
오픈소스 다운로드 URL 주소
예) github/aerogear-attic/aerogear-android-stor |
modifiedDate
|
string
|
N
|
수정일
format : "yyyy-mm-dd" |
size
|
int
|
Y
|
page에서 가져올 데이터 개수(필수값)
|
direction
|
string
|
N
|
정렬 방향
- ASC: 오름차순 (기본값) - DESC: 내림차순 |
사용 예제
curl –location –request GET "https://{osori_base_url}/api/v2/user/oss?ossName=Net&modifiedDate=2023-07-12&equalFlag=N&page=0&size=2&sort=name&direction=ASC"
응답 Header
Content-Type application/json
응답 Body
{
"code": "200",
"messageList": {
"oss_master": [
{
"rownum": 1.0,
"name": "DotNetZip",
"oss_master_id": 1,
"version_license_diff": false,
"purl": "link:dotnetzip.codeplex.com/downloads/get/258012",
"version": [
{
"oss_version_id": 1,
"version": null,
"declaredLicenseList": "MS-PL",
"detectedLicenseList": null,
"restrictionList": "Non-Commercial Use Only,Internal Use Only,Patent Warning"
}
]
}
],
"count": 1,
"page": 0,
"size": 2
},
"success": true
}
응답 항목 의미
Depth 1 | Depth 2 | Depth 3 | Depth 4 | Depth 5 | Type | Description |
---|---|---|---|---|---|---|
code
|
|
|
|
|
string
|
API 응답 상태값
200: 성공 |
messageList
|
|
|
|
|
object
|
|
|
list
|
|
|
|
array object
|
|
|
|
name
|
|
|
string
|
오픈소스 이름
|
|
|
oss_master_id
|
|
|
string
|
오픈소스 ID (primary Key)
|
|
|
version_license_diff
|
|
|
boolean
|
오픈소스가 가지고 있는 버전별로 라이선스가 다른 경우: true
|
|
|
purl
|
|
|
boolean
|
OSS 대표 링크에 대한 purl
(https://github.com/package-url/purl-spec) |
|
|
version
|
|
|
array object
|
오픈소스 버전 정보
|
|
|
|
oss_version_id
|
|
int
|
오픈소스 버전 ID (primary key)
|
|
|
|
version
|
|
string
|
오픈소스 버전
|
|
|
|
declaredLicenseList
|
|
string
|
오픈소스 버전에 정의된 대표 라이선스
|
|
|
|
detectedLicenseList
|
|
string
|
오픈소스 버전에 추가로 발견된 라이선스
|
|
|
|
restrictionList
|
|
string
|
오픈소스 버전의 제약사항
|
|
count
|
|
|
|
int
|
검색 결과 전체 총 레코드 수
|
|
page
|
|
|
|
int
|
list 의 현재 page 값
|
|
size
|
|
|
|
int
|
page별 list count 값
|
success
|
|
|
|
|
boolean
|
API 동작 결과
- false : 실패 - true : 성공 |
오픈소스 상세 정보 조회
/api/v2/user/oss/{category}/versions
NOTE오소리에 등록되어 있는 오픈소스의 상세 정보를 조회할 수 있는 API 입니다.
Query 매개변수 정보
Name | Type | required | Description |
---|---|---|---|
searchWord
|
string
|
Y
|
검색에 사용할 단어를 입력합니다.
예) facebook |
page
|
int
|
Y
|
시작 page 숫자(필수값)
- 기본값: 0 |
sort
|
string
|
Y
|
정렬 기준 항목(필수값)
정렬 기준에 사용할 수 있는 항목은 아래와 같습니다. - name - nickname - version |
size
|
int
|
Y
|
page에서 가져올 데이터 개수(필수값)
|
direction
|
string
|
N
|
정렬 방향
- ASC: 오름차순 (기본값) - DESC: 내림차순 |
사용 예제
curl –location –request GET "https://{osori_base_url}/api/v2/user/oss/name/versions?searchWord=DotNetZip"
응답 Header
Content-Type application/json
응답 Body
{
"code": "200",
"messageList": {
"oss_master": [
{
"rownum": 1.0,
"oss_master_id": 1,
"name": "DotNetZip",
"download_location": "http://dotnetzip.codeplex.com/downloads/get/258012",
"purl": "link:dotnetzip.codeplex.com/downloads/get/258012",
"homepage": "http://dotnetzip.codeplex.com23",
"description": null,
"compliance_notice": "test",
"compliance_notice_ko": "테스트",
"version_license_diff": false,
"attribution": null,
"publisher": null,
"created_date": "2023-11-28T05:15:47.000+00:00",
"modified_date": "2023-11-28T05:15:47.000+00:00",
"downloadLocationList": null,
"purlList": null,
"nicknameList": [
"test",
"test1",
"test23"
],
"oss_version": [
{
"oss_version_id": 1,
"version": null,
"description": null,
"description_ko": null,
"attribution": null,
"license_combination": "AND",
"release_date": null,
"created_date": "2023-10-24 16:28:20",
"modified_date": "2023-10-24 16:28:20",
"copyright": null,
"declaredLicenseList": [
"MS-PL"
],
"detectedLicenseList": null,
"restrictionList": [
"Non-Commercial Use Only",
"Internal Use Only",
"Patent Warning"
]
}
]
}
],
"count": 1,
"page": 0,
"size": 10
},
"success": true
}
응답 항목 의미
Depth 1 | Depth 2 | Depth 3 | Depth 4 | Depth 5 | Type | Description |
---|---|---|---|---|---|---|
code
|
|
|
|
|
string
|
API 응답 상태값
200: 성공 |
messageList
|
|
|
|
|
object
|
|
|
detailInfo
|
|
|
|
array
object |
|
|
|
oss_master_id
|
|
|
int
|
오픈소스 ID (primary Key)
|
|
|
name
|
|
|
string
|
오픈소스 이름
|
|
|
download_location
|
|
|
string
|
오픈소스 URL 주소
|
|
|
purl
|
|
|
string
|
OSS 대표 링크에 대한 purl
(https://github.com/package-url/purl-spec) |
|
|
homepage
|
|
|
string
|
오픈소스 홈페이지 URL
|
|
|
description
|
|
|
string
|
오픈소스에 대한 부가 설명
|
|
|
compliance_notice
|
|
|
string
|
오픈소스 제약 사항에 대한 영어 설명 (항목이 있을 때만 값이 존재)
|
|
|
|
compliance_notice_ko
|
|
string
|
오픈소스 제약 사항에 대한 한글 설명 (항목이 있을 때만 값이 존재)
|
|
|
version_license_diff
|
|
|
string
|
오픈소스가 가지고 있는 버전별로 라이선스가 다른 경우: true
|
|
|
attribution
|
|
|
string
|
별도로 Notification이 필요한 사항
|
|
|
publisher
|
|
|
string
|
배포자 또는 소유자 (또는 단체)
|
|
|
created_date
|
|
|
string
|
데이터 등록일
|
|
|
modified_date
|
|
|
string
|
데이터 수정일
|
|
|
downloadLocationList
|
|
|
array string
|
오픈소스를 다운로드 받을 수 있는 URL 리스트
예) http://github.com 등 |
|
|
purlList
|
|
|
array string
|
OSS 버전 대표 링크에 대한 purl
|
|
|
nicknameList
|
|
|
array string
|
OSS를 일컫는 또 다른 이름
|
|
|
oss_version
|
id
|
|
array object
|
|
|
|
|
oss_version_id
|
|
int
|
오픈소스 버전 ID (primary key)
|
|
|
|
version
|
|
string
|
버전 정보
|
|
count
|
|
description
|
|
string
|
버전별 요약 설명 (영문)
|
|
|
|
description_ko
|
|
string
|
버전별 요약 설명 (한글)
|
|
|
|
attribution
|
|
string
|
별도로 Notification이 필요한 사항
|
|
|
|
license_combination
|
|
string
|
declaredLicenseList에 기술된 라이선스들 사이의 논리적 결합 관계
(입력 가능 값 : AND, OR, null) |
|
|
|
release_date
|
|
string
|
배포일자
|
|
|
|
created_date
|
|
string
|
데이터 등록일
|
|
|
|
modified_date
|
|
string
|
데이터 수정일
|
|
|
|
copyright
|
|
string
|
copyright
|
|
|
|
declaredLicenseList
|
|
array string
|
오픈소스 버전에 정의된 대표 라이선스
|
|
|
|
detectedLicenseList
|
|
array string
|
오픈소스 버전에 추가로 발견된 라이선스
|
|
|
|
restrictionList
|
|
array string
|
오픈소스 버전의 제약사항
|
|
count
|
|
|
|
int
|
검색 결과 전체 총 레코드 수
|
|
page
|
|
|
|
int
|
list 의 현재 page 값
|
|
size
|
|
|
|
int
|
page별 list count 값
|
success
|
|
|
|
|
boolean
|
API 동작 결과
- false : 실패 - true : 성공 |