IsurangaPerera / identity-rest-dispatcher

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

identity-api-dispatcher

Branch Build Status Travis CI Status
master Build Status Travis CI Status

Aggregates the API implementations from identity-api-user and identity-api-server builds a single webapp inorder to expose the multiple API endpoints in WSO2 Identity Server.

Exposing a new API

  1. Add the dependency of the API implementation into the dependencies section of parent.pom

  2. Include the dependency of the API implementation into the dependencies section of parent.pom

  3. Open the beans.xml

    
    components
    │   └── org.wso2.carbon.identity.api.dispatcher
    │       ├── pom.xml
    │       ├── src
    │       │   └── main
    │       │       └── webapp
    │       │           ├── META-INF
    │       │           └── WEB-INF
    │       │               ├── beans.xml
    │       │               └── web.xml
    
  4. Add the API implementation from identity-api-user or identity-api-server 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>
    
  5. Build the component.

     mvn clean install
    

Deploy and test

  1. Once complete the build, copy the api.war in the components/org.wso2.carbon.identity.api.dispatcher/target/ into [IS_HOME]/repository/deployment/server/webapps/ location and restart the server. (If already exploded api folder exists in the location, remove it before restarting)

    ├── components
    │   └── org.wso2.carbon.identity.api.dispatcher
    │       └── target
    │           ├── api.war
    
  2. 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" -k
    

About

License:Apache License 2.0


Languages

Language:Java 100.0%