API 커넥터
improve this page | report issue개요
Mobile Foundation 애플리케이션은 Mobile Foundation 어댑터를 사용하여 마이크로서비스 또는 엔터프라이즈 백엔드 서비스를 호출할 수 있습니다. 어댑터를 작성하려면 Mobile Foundation 어댑터 프레임워크를 이해해고 있어야 합니다. 대안으로, Mobile Foundation은 Mobile Foundation API 커넥터를 통해 어댑터를 호출하지 않고 마이크로서비스 또는 엔터프라이즈 백엔드 서비스에 대한 보안 호출을 용이하게 합니다. API 커넥터(예: 어댑터)는 Mobile Foundation의 OAuth 2.0 메커니즘을 기반으로 한 보안 호출을 보장합니다. API 커넥터를 사용하면 Mobile Foundation 관리자는 Mobile Foundation에서 마이크로서비스 또는 엔터프라이즈 백엔드 서비스 세부사항을 구성하고 배치할 수 있습니다. 배치된 구성은 모바일 앱에서 마이크로서비스 또는 백엔드 서비스 요청을 안전하게 호출할 수 있도록 Mobile Foundation 런타임에서 사용됩니다.
이점
Mobile Foundation API 커넥터를 사용할 경우의 이점은 다음과 같습니다.
- 마이크로서비스와 통합하기 위해 느슨하게 결합된 백엔드
- 자세한 앱 및 API 분석
- 단일 마이크로서비스 계층이 사용된 교차 채널 아키텍처(웹, 모바일 등)에 대한 BFF(Backend for Frontend) 패턴과의 완벽한 통합
- 채널 및 백엔드에서의 향상된 성능 조정
- Mobile Foundation 어댑터 기술 스킬에 대한 의존도 축소
- 즉시 가능한 앱 관리
- 경량 런타임
- 사용자 코드 없이 신뢰할 수 있고 확장할 수 있는 런타임
API 커넥터 사용
API 커넥터를 사용하려면 다음 두 가지 단계를 따라야 합니다.
- 마이크로서비스 또는 백엔드 서비스 구성을 Mobile Foundation 서버에 정의하고 배치하십시오.
- 배치된 구성을 통해 마이크로서비스 또는 백엔드 서비스 메소드를 호출하도록 클라이언트 앱을 수정하십시오.
플로우
다이어그램에 표시된 대로 첫 번째 단계는 운영 관리 API를 사용하여 Mobile Foundation 서버에서 마이크로서비스 또는 엔터프라이즈 백엔드 서비스 세부사항을 구성하고 배치하는 것입니다. Mobile Foundation 런타임은 배치된 구성을 사용하여 적합한 마이크로서비스 또는 엔터프라이즈 백엔드에 대한 클라이언트 요청을 안전하게 호출합니다.
OAuth based Mobile Foundation 보안 메커니즘은 호출이 적절한 애플리케이션 클라이언트를 통해 수행될 수 있도록 합니다. 내부의 Mobile Foundation 클라이언트 SDK 및 Mobile Foundation 권한 서버는 애플리케이션에서 수행하는 요청을 유효성 검증합니다. 엔터프라이즈 백엔드 서비스는 충분한 보안 유효성 검증에 대비하기 위해 호출됩니다.
마이크로서비스 또는 엔터프라이즈 백엔드 구성 정의 및 배치
Mobile Foundation 운영 관리 API는 클라이언트 앱이 연결해야 하는 마이크로서비스 또는 엔터프라이즈 백엔드 세부사항을 구성하고 배치하는 데 사용될 수 있습니다. 이 목적을 위해 사용되는 관리 API는 다음과 같습니다.
http://<host>:<port>/mfpadmin/management-apis/2.0/runtimes/mfp/backend-services-config
Mobile Foundation에서 백엔드 서비스 세부사항을 관리하기 위해 구성 API에서 사용할 수 있는 메소드는 다음과 같습니다.
- 백엔드 서비스 구성을 배치하려면
POST
를 사용하십시오. - 배치된 백엔드 서비스 구성을 검색하려면
GET
을 사용하십시오. - 이전에 배치된 구성을 삭제하려면
DELETE
를 사용하십시오.
POST
API는 JSON 형식으로된 서비스 구성 세부사항을 사용합니다. 다음은 구성 JSON 구문입니다.
{
"backendServices" : [
{
"service": "resorts",
"baseUrl":"http://mybluemix.net/resorts",
"auth" : {
"type" : "basic",
"credential" : {
"username" : "user",
"password" : "pass"
}
},
"ConnectionProperties" : {
"maxConnetions" : "50",
"connectionTimeoutInMilliseconds" : "20000",
"socketTimeoutInMilliseconds" : "20000"
}
}
]
}
JSON에서 사용되는 키는 다음 행에 설명되어 있습니다.
- service – 마이크로서비스 또는 백엔드 엔터프라이즈 서비스를 식별하기 위한 논리 서비스 이름입니다. 이름은 이 관리 API를 사용하여 Mobile Foundation 서버에 구성된 서비스 목록에 있는 특정 서비스에 사용할 고유한 이름이어야 합니다.
- baseurl – 마이크로서비스 또는 엔터프라이즈 백엔드 서비스의 기본 URL입니다. 이는 클라이언트 앱에서 호출힐 수 있는 메소드를 노출하는 마이크로서비스의 전체 URL입니다. 메소드 이름은 클라이언트 애플리케이션에서 제공할 수 있습니다.
- auth – 엔터프라이즈 백엔드 서비스에 액세스하는 데 사용되는 인증 세부사항입니다.
- type – 세 가지 유형을 따르는 Mobile Foundation 지원입니다.
- ‘basic’ – 사용자 이름 및 비밀번호를 구성하도록 ‘credentials’ 섹션이 포함된 기본 인증입니다.
예를 들면, 다음과 같습니다.
"credential" : { "username" : "hello", "password" : "hello" }
- apikey – API 키 기반 인증의 경우 policy 유형을 기반으로 한 다양한 스킴이 지원됩니다. 다음은 apikey에 대한 구문입니다.
"type" : "apikey", "credential" : { "apikey" : "abcdefg", "policy" : "basic", "name" : "apikey" }
정책은 백엔드 서비스가 표시될 API 키(apikey)를 어떻게 예상하는지에 따라 header, query 또는 basic이 될 수 있습니다. 정책 값 header는 name별로 표시되는 헤더 이름을 사용하여 요청 헤더에서 apikey를 전달합니다. 정책 query는 조회 매개변수로 apikey를 전송하고 basic은 기본 인증으로 apikey를 전송합니다.
- mfpauth – 이 type에서 마이크로서비스는 보안 메커니즘을 기반으로 한 Mobile Foundation OAuth를 활용할 수 있습니다. credentials 섹션은 mfpauth 유형에 필요하지 않으며 구성 JSON의 일부가 될 필요가 없습니다.
백엔드 서비스는 보안 범위, 권한 서버 및 Mobile Foundation 권한 서버로 보호될 수 있습니다. 백엔드 서비스에 대한 액세스를 제공하기 전에 Mobile Foundation 인증 메커니즘은 요청이 필요한 범위를 사용하여 올바른 액세스 토큰을 전달하는지 확인해야 합니다. Mobile Foundation 인증 서버가 인트로스펙션 중에 표시되는 액세스 토큰의 유효성을 확인하는 경우 백엔드 서비스에 대한 액세스 권한이 부여됩니다. Mobile Foundation 인증 서버를 사용하도록 백엔드 서비스를 구성하는 방법에 대한 자세한 내용은 여기를 참조하십시오.
- extauth – 이 유형은 외부 또는 서드파티 인증 서버를 사용하여 백엔드 마이크로서비스를 지원하는 데 사용될 수 있습니다. 애플리케이션 클라이언트는 이름이 ext-token인 특수 헤더로서 백엔드 서비스에서 예상하는 액세스 토큰을 전달해야 합니다. API 커넥터는 권한 헤더로서 앱 클라이언트에서 ext-token 헤더의 일부로 수신되는 액세스 토큰을 백엔드 마이크로서비스에 전달합니다. 인증 정보 섹션은 extauth 유형인 경우에 필요하지 않으며 구성 JSON의 일부가 될 필요가 없습니다. 토큰 만료 후 외부 토큰 인트로스펙션 및 갱신은 앱 클라이언트 및 백엔드 마이크로서비스에서 처리되어야 합니다. 앱 클라이언트를 유효성 검증하기 위한 Mobile Foundation 보안 메커니즘은 동일한 상태로 유지됩니다.
- ‘basic’ – 사용자 이름 및 비밀번호를 구성하도록 ‘credentials’ 섹션이 포함된 기본 인증입니다.
예를 들면, 다음과 같습니다.
- type – 세 가지 유형을 따르는 Mobile Foundation 지원입니다.
- ConnectionProperties는 Mobile Foundation 서버와 백엔드 마이크로서비스 간의 연결 매개변수를 구성하도록 사용될 수 있습니다. 이 매개변수는 선택사항이며, 제공되지 않은 경우 기본값이 사용됩니다. 다음은 ConnectionProperties에 대한 구문입니다.
"ConnectionProperties" : { "maxConnetions" : "50", "connectionTimeoutInMilliseconds" : "20000", "socketTimeoutInMilliseconds" : "20000" }
다음은 별도의 연결 매개변수에 대한 기본값입니다.
- maxConnetions => 20
- connectionTimeoutInMilliseconds => 30000(즉, 30초)
- socketTimeoutInMilliseconds => 30000(즉, 30초)
다음은 관리 API curl 명령에 대한 구문입니다.
- 구성을 배치하려면
POST
를 사용하십시오.curl -X POST -u admin:admin 'http://<host>:<port>/mfpadmin/management-apis/2.0/runtimes/mfp/backend-services-config' --header 'Content-Type: application/json' --data-binary @config.json
여기서,
config.json
은 위의 JSON 구문과 유사한 구성이 사용되는 JSON 파일입니다. - 기존 구성을 페치하려면
GET
을 사용하십시오.curl -X GET -u admin:admin 'http:// <host>:<port>/mfpadmin/management-apis/2.0/runtimes/mfp/backend-services-config'
- 기존에 배치된 구성을 제거하려면
DELETE
를 사용하십시오.curl -X DELETE -u admin:admin 'http:// <host>:<port>/mfpadmin/management-apis/2.0/runtimes/mfp/backend-services-config'
마이크로서비스 또는 백엔드 서비스 구성이 Mobile Foundation에 배치되면 Mobile Foundation Client SDK를 사용하여 엔터프라이즈 백엔드 서비스를 호출할 수 있습니다. 클라이언트 SDK API에 대한 자세한 정보는 여기를 참조하십시오.
▲Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.