PeopleService Making Requests

Data Source:  People Hub

These services should be used for getting batches of data for applications. All requests are made using basic authentication and you will need to pass the credentials from your application.

The GET service will return all attributes you have access too, the options are the "GetPeopleService" and the "LimitedPeopleService", see the service contracts below for details. The LimitedPeopleService contains less attributes, but the more generic ones. Note: An enhancement was deployed to Production in June 2019 to enable filtering on GetPeopleService click this link for details: Version Notes 1.3

The POST service will enable you to pass parameters listed below and in the PeopleService contract. This gives you some flexibility in datasets and in attributes returned.


PeopleService Service Contract: PeopleService_v1.xlsx

GetPeopleService Service Contract: GetPeopleService_v1.xlsx

Request XSD: PeopleService_Request.xsd  (Applies to POST only!)

Response XSD: PeopleService_Response.xsd


LimitedPeopleService Service Contract:LimitedPeopleService_v1.xlsx

LimitedPeopleService XSD: LimitedPeopleService_Response_v1.xsd

Note: For Pagination on LimitedPeopleService the parameters should be in the URL as "pagenumber" and "recordsperpage". Example: https://gw-tst.its.yale.edu/soa-gateway/PeopleHub/v1/LimitedPeopleService?pagenumber=1&recordsperpage=10000

For XML Parsing please see these notes: XML Parsing


SoapUI Project Examples: 

PeopleHub_Requests-soapui-project.xml 

LimitedPeopleService-soapui-project.xml

GetPeopleService-soapui-project.xml


Endpoints:

Test:

For POST method (passing parameters and custom querying):

https://gw-tst.its.yale.edu/soa-gateway/PeopleHub/v1/PeopleService

For GET method (no parameters, full data set user has access to):

https://gw-tst.its.yale.edu/soa-gateway/PeopleHub/v1/GetPeopleService

https://gw-tst.its.yale.edu/soa-gateway/PeopleHub/v1/LimitedPeopleService

Production:

For POST method (passing parameters and custom querying):

https://gw.its.yale.edu/soa-gateway/PeopleHub/v1/PeopleService

For GET method (no parameters, full data set user has access to):

https://gw.its.yale.edu/soa-gateway/PeopleHub/v1/GetPeopleService

https://gw.its.yale.edu/soa-gateway/PeopleHub/v1/LimitedPeopleService


Making Requests:
GET method requests will default to the "Get All Data" message listed in the example requests.

For POST Requests: Must set header for request with Content-Type you would like and send credentials.

Attribute Filters- accept Y/N

Population Filters- Please use Service Contract to get details PeopleService_v1.xlsx

Include Future: pass query parameter of ?includefuture=Y at the end of your endpoint. See Details here: Release Version Notes 1.1


Example Requests:

All Request Items
<Request>
        <AttributeFilter>
                <Contact>Y</Contact>
                <Demographic>Y</Demographic>
                <Position>Y</Position>
                <Appointment>Y</Appointment>
                <Enrollment>Y</Enrollment>
                <Organization>Y</Organization>
                <Status>Y</Status>
        </AttributeFilter>
       <PopulationFilter>
                <Operator>OR</Operator>
                <Primary_EDU_Person_Affiliation  cmp="IN"> </Primary_EDU_Person_Affiliation>
			<Primary_Yale_Relationship cmp="IN"> </Primary_Yale_Relationship>
            <Has_Affiliate_Role  cmp="EQUALS"></Has_Affiliate_Role>
            <Has_Employee_Role  cmp="EQUALS"> </Has_Employee_Role>
            <Has_Faculty_Role  cmp="EQUALS"> </Has_Faculty_Role>
            <Has_Student_Role  cmp="EQUALS"> </Has_Student_Role>
            <Has_Member_Role  cmp="EQUALS"> </Has_Member_Role>
            <Has_Staff_Role  cmp="EQUALS"> </Has_Staff_Role>
            <Student_Status  cmp="IN"></Student_Status>
            <Worker_Status  cmp="IN"> </Worker_Status>
			<Cost_Center_Code cmp="IN"> </Cost_Center_Code>
			<Department_Code  cmp="IN"> </Department_Code>
            <Planning_Unit_Code  cmp="IN"> </Planning_Unit_Code>
 </PopulationFilter> 
</Request>



Get All Data:
<Request>
        <AttributeFilter>
                <Contact>Y</Contact>
                <Demographic>Y</Demographic>
                <Position>Y</Position>
                <Appointment>Y</Appointment>
                <Enrollment>Y</Enrollment>
                <Organization>Y</Organization>
                <Status>Y</Status>
        </AttributeFilter>
</Request>

Get Filtered Data:
<Request>
        <AttributeFilter>
                <Contact>N</Contact>
                <Demographic>N</Demographic>
                <Position>Y</Position>
                <Appointment>N</Appointment>
                <Enrollment>N</Enrollment>
                <Organization>N</Organization>
                <Status>Y</Status>
        </AttributeFilter>
        <PopulationFilter>
                <Operator>AND</Operator>
                <Primary_EDU_Person_Affiliation cmp="IN">EMPLOYEE</Primary_EDU_Person_Affiliation>
                <Department_Code cmp="IN">HDCC1002,HDCC1468</Department_Code>
                <Planning_Unit_Code cmp="IN">HPCC4003,HPCC4001</Planning_Unit_Code>
        </PopulationFilter>
      </Request>


Less stable (ongoing build process), can use for failure testing, or getting queries correct