본문으로 가기

API 활용 가이드

오소리 프로젝트가 사용자에게 제공하는 API 사용법에 대해서 설명합니다.

WARNING

API 사용제한: 오소리 사용자 API는 다음과 같은 사용제한이 걸려 있습니다.
한 시간당 최대 5,000번 이상의 API 호출이 시도되면, Too Many Request 예외가 발생합니다.

사용자 API URL 주소

오소리 사용자 API v2.0 (Swagger UI) : 링크

라이선스 목록 조회

/api/v2/user/licenses
NOTE

오소리에 등록되어 있는 라이선스 정보를 조회할 수 있는 API 입니다.

Query 매개변수 정보

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 매개변수 정보

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 매개변수 정보

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 매개변수 정보

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 : 성공