Aggregates the API implementations from identity-user-api and identity-server-api builds a single webapp inorder to expose the multiple API endpoints in WSO2 Identity Server.
-
Refer identity-user-api repository for the implementation of user APIs
-
Refer identity-server-api repository for the implementation of server APIs
-
Add the dependency of the API implementation into the dependencies section of parent.pom
-
Include the dependency of the API implementation into the dependencies section of parent.pom
-
Open the beans.xml
components │ └── org.wso2.carbon.identity.api.dispatcher │ ├── pom.xml │ ├── src │ │ └── main │ │ └── webapp │ │ ├── META-INF │ │ └── WEB-INF │ │ ├── beans.xml │ │ └── web.xml
-
Add the API implementation from identity-user-api or identity-server-api under the corresponding
server
tag.<jaxrs:server id="server" address="/server/v1"> <jaxrs:serviceBeans> <bean class="org.wso2.carbon.identity.rest.api.server.challenge.v1.ChallengesApi"/> </jaxrs:serviceBeans> <jaxrs:providers> <bean class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider"/> </jaxrs:providers> </jaxrs:server> <jaxrs:server id="users" address="/users/v1"> <jaxrs:serviceBeans> <bean class="org.wso2.carbon.identity.rest.api.user.association.v1.UsersApi"/> <bean class="org.wso2.carbon.identity.rest.api.user.challenge.v1.UserIdApi"/> <bean class="org.wso2.carbon.identity.rest.api.user.challenge.v1.MeApi"/> </jaxrs:serviceBeans> <jaxrs:providers> <bean class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider"/> </jaxrs:providers> </jaxrs:server>
-
Build the component.
mvn clean install
-
Once complete the build, copy the
api.war
in thecomponents/org.wso2.carbon.identity.api.dispatcher/target/
into[IS_HOME]/repository/deployment/server/webapps/
location and restart the server. (If already explodedapi
folder exists in the location, remove it before restarting)├── components │ └── org.wso2.carbon.identity.api.dispatcher │ └── target │ ├── api.war
-
Access the API
User APIs
https://localhost:9443/api/users/v1/<resource>/<bla-bla-bla>
Sample endpoint:
https://localhost:9443/api/users/v1/me/challenges
Sample Request:
curl -X GET "https://localhost:9443/api/users/v1/me/challenges" -H "accept: application/json" -k
Server APIs
https://localhost:9443/api/server/v1/<resource>/<bla-bla-bla>
Sample endpoint:
https://localhost:9443/api/server/v1/challenges
Sample Request:
curl -X GET "https://localhost:9443/api/server/v1/challenges" -H "accept: application/json" -H -k