Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Warning
titleDRAFT * DRAFT * DRAFT

This documentation is a work in progress and should not be use for production applications.

...


Section
Column
width20%
Panel
borderColor#BF9900
bgColor#FFFFFF
titleBGColor#E5D699
titleIn this Section
borderStylesolid
Table of Contents
indent15px
stylenone
Column

...

Overview

These APIs provide search capability for People data that is published from the IAM Identity Store.  These APIs will return general information about people, including names, system ids, affiliations, primary user accounts, and contact info.  

Audience

Excerpt

This documentation is intended for developers who wish to perform a basic search on the public data within the IAM system from within their application via the REST with JSON interface.


This is currently the only interface available for this API. If you would like to see an XML interface please email middleware-api@ucdavis.edu.

Summary of People APIs

People API

The centerpiece of the Identity Store People APIs, the People API, is backed by a de-normalized view of information about people, including official and display names, affiliations, and system IDs (e.g. mothraId, studentId, etc.).  The data from this view is exposed through the People API, and is accessible at: https://iet-ws-test.ucdavis.edu/api/iam/people/

...

Accessing

...

this

...

data

...

is

...

as

...

easy

...

as

...

passing

...

your

...

search

...

parameters

...

as

...

query

...

parameters

...

in

...

the

...

url.

...

For

...

example,

...

the

...

following

...

curl

...

command

...

would

...

return

...

information

...

about

...

the

...

user,

...

Gary

...

Sharpe.

...

Code Block
titleSample JSON Requests

curl 

...

-i 

...

-H "Accept: application/json" [https://iet-ws-test.ucdavis.edu/api/iam/people/search?firstName=Gary&lastName=Sharpe&key=myKeyv&v=1.0]

The

...

specifics

...

of

...

this

...

API

...

are

...

included

...

on

...

a

...

separate

...

page

...

here.

...

Supporting

...

People

...

APIs

...

Additional,

...

supporting

...

APIs

...

are

...

available

...

to

...

provide

...

access

...

to

...

a

...

subset

...

of

...

the

...

data

...

available

...

in

...

the

...

de-normalized

...

view,

...

as

...

well

...

as

...

other

...

information

...

about

...

a

...

person

...

not

...

available

...

in

...

the

...

de-normalized

...

view.

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

If

...

you

...

need

...

assistance

...

with

...

this

...

APIs,

...

please

...

email

...

middleware-api@ucdavis.edu.

...

Application

...

requirements

...

Each

...

request

...

must

...

provide

...

a

...

valid

...

application

...

key.

...

You

...

may

...

sign

...

up

...

for

...

your

...

own

...

application

...

key

...

here

...

<INSERT

...

LINK>.

...

Using

...

the

...

JSON

...

interface

...

The

...

easiest

...

way

...

to

...

start

...

learning

...

about

...

this

...

interface

...

is

...

to

...

try

...

it

...

out.

...

This

...

section

...

shows

...

how

...

to

...

use the curl command line tool to execute sample queries.

NOTE: Details about each API and the available commands are available in separate documents for each individual API

Code Block
titleSample JSON Requests
 Attach this curl command to the beginning of any of the below sample requests:

	curl 

...

-i 

...

-H "Accept: application/json"


 People API

...

	https://iet-ws-test.ucdavis.edu/api/iam/people/search?firstName=Gary&lastName=Sharpe&key=myKeyv&v=1.0

...




 DisplayName API

...

	https://iet-ws-test.ucdavis.edu/api/iam/people/displayname/

...

{iamid}?key=myKeyv&v=1.0


 SystemIds API

...

	https://iet-ws-test.ucdavis.edu/api/iam/people/systemids/

...

{iamid}?key=myKeyv&v=1.0

...

	https://iet-ws-test.ucdavis.edu/api/iam/people/systemids/search?mothraId=1111111&key=myKeyv&v=1.0

...




 Affiliations API

...

	https://iet-ws-test.ucdavis.edu/api/iam/people/affiliations/

...

{iamid}?key=myKeyv&v=1.0

...

	https://iet-ws-test.ucdavis.edu/api/iam/people/affiliations/isfaculty?key=myKeyv&v=1.0

...





 PriKerberosAccount

...

	https://iet-ws-test.ucdavis.edu/api/iam/people/prikerbacct/

...

{iamid}&key=myKeyv&v=1.0



The

...

response

...

to

...

all

...

of

...

the

...

above

...

requests

...

have

...

Content-

...

Type of text/javascript.

...

 An example

...

response

...

for

...

the

...

the

...

following

...

request

...

is

...

shown

...

below:

...

curl

...

-i

...

-H

...

"Accept:

...

application/json"

...

https://iet-ws-test.ucdavis.edu/api/iam/people/search?firstName=Gary&lastName=Sharpe&key=myKeyv&v=1.0

...

Code Block
langxml
titleSample JSON Response

{
  "responseData" : {
    "results" : [
{
"IAMId": "",
"mothraId": "",
"PPSId" : "",
"studentId": "",
"bannerPIdM": "",
"externalId": "",
"offFirstName" : "",
"offMiddleName": "",
"offLastName": "",
"offSuffix" : "",
"offFullName": "",
"disFirstName" : "",
"disMiddleName": "",
"disLastName": "",
"disSuffix" : "",
"disFullName": "",
"isFaculty": "",
"isStudent": "",
"isStaff": ""
"privacyCode": "",
"modifyDate": "",


},
{ ...<More results>.... }

...

 ],
  "responseDetails" : null,
  "responseStatus" : 0
}

JSON

...

reference

...

Unlike

...

the

...

core

...

JavaScript

...

interface,

...

the

...

JSON

...

interface

...

is

...

exposed

...

through

...

a

...

uniform

...

URL

...

that

...

contains

...

CGI

...

arguments.

...

Your

...

application

...

can

...

use

...

an

...

HTTP

...

stack

...

of

...

its

...

choosing.

...

In

...

order

...

to

...

use

...

the

...

JSON

...

interface:

...

  • You

...

  • must

...

  • construct

...

  • a

...

  • properly

...

  • formatted

...

  • URL

...

  • with

...

  • all

...

  • necessary

...

  • CGI

...

  • arguments.

...

  • You

...

  • must

...

  • send

...

  • an

...

  • HTTP

...

  • referer

...

  • header

...

  • that

...

  • accurately

...

  • identifies

...

  • your

...

  • application.

...

  • You

...

  • must

...

  • process

...

  • the

...

  • JSON-encoded

...

  • response.

...

Request

...

format

...

URL

...

base

...

address

...

The

...

base

...

URL

...

for

...

the

...

IAM

...

Identity

...

Store

...

People

...

APIs

...

all

...

start

...

with

...

http://iet-ws.ucdavis.edu/api/people

...

.

...

 The details

...

of

...

each

...

API

...

are

...

provided

...

in

...

documentation

...

about

...

each

...

individual

...

API.

...

 (See

...

links

...

above)

...

URL

...

arguments

...

This

...

section

...

provides

...

examples

...

of

...

the

...

kinds

...

of

...

arguments

...

that

...

can

...

be

...

used

...

with

...

the

...

People

...

APIs

...

The

...

value

...

of

...

a

...

CGI

...

argument

...

must

...

always

...

be

...

properly

...

escaped.

...

This

...

can

...

be

...

done

...

via

...

the

...

functional

...

equivalent

...

of

...

JavaScript'

...

s encodeURIComponent()

...

 method.

...

Required

...

URL

...

arguments

...

The

...

following

...

table

...

lists

...

the

...

required

...

URL

...

arguments.

...

Argument

...

Example

...

Description

...

key

...

key=your-key

...

This

...

argument

...

supplies

...

the

...

application's

...

key.

...

You

...

can

...

sign

...

up

...

for

...

an

...

API

...

key

...

<INSERT

...

LINK

...

HERE>.

...


It

...

must

...

be

...

a

...

valid

...

key

...

associated

...

with

...

your

...

application.

...

The

...

key

...

is

...

required

...

for

...

this

...

API

...

to

...

implement

...

quality

...

of

...

service

...

rules

...

for

...

this

...

API.

...

If

...

your

...

application

...

is

...

making

...

too

...

many

...

requests

...

it

...

will

...

be

...

throttled

...

to

...

ensure

...

resources

...

are

...

not

...

overloaded

...

during

...

times

...

of

...

peak

...

usage.

...

Also,

...

by

...

supplying

...

a

...

key

...

we

...

can

...

identify

...

and

...

contact

...

you

...

should

...

something

...

go

...

wrong

...

with

...

your

...

application.

...

v

...

v=1.0

...

This

...

argument

...

supplies

...

protocol

...

version

...

number.

...

The

...

only

...

valid

...

value

...

at

...

this

...

point

...

in

...

time

...

is 1.0.

...

Search

...

URL

...

arguments

...

The

...

following

...

table

...

lists

...

the

...

possible

...

search

...

query

...

URL

...

arguments.

...

At

...

least

...

one

...

argument

...

should

...

be

...

provided

...

to

...

perform

...

a

...

search.

...

If

...

multiple

...

search

...

criteria

...

are

...

provided

...

an

...

'AND'

...

search

...

will

...

be

...

performed

...

to

...

match

...

on

...

all

...

arguments.

...

Wildcard

...

Searches:

...

Any

...

argument

...

may

...

use

...

a

...

wildcard

...

within

...

the

...

query

...

value.

...

You

...

may

...

use

...

multiple

...

wildcards

...

in

...

any

...

position

...

in

...

the

...

search

...

criteria.

...

See

...

examples

...

below.

...

*

...

Example

...

search

...

arguments:

...

Code Block
titleSearch for anyone with last name of 'Bray'

...

/api/directory/search?sn=Bray&key=myKeyv&v=1.0

...

Code Block
titleSearch

...

for

...

anyone

...

with

...

first

...

name

...

of

...

'Curtis'

...

and

...

last

...

name

...

starting

...

with

...

'B'

...

/api/directory/search?givenName=Curtis&sn=B*&key=myKeyv&v=1.0

...

Code Block
titleSearch

...

for

...

anyone

...

with

...

a

...

displayName

...

that

...

starts

...

with

...

'J'

...

and

...

ends

...

with

...

'Jones'

...

/api/directory/search?displayName=J*Jones&key=myKey&v=1.0

...

Response

...

format

...

Each

...

response

...

follow

...

this

...

general

...

format:

Code Block
langxml

{
 

...

 "responseData" : {
    "results" : []
  },
  "responseDetails" : null 

...

| string-on-error,
  "responseStatus" : 0 

...

| error-code
}

In

...

the

...

JSON

...

fragment

...

above,

...

note

...

that the responseData property contains a results array and an optional cursor.

Trouble shooting

If you encounter problems with your code:

  • Make sure your API key is valid.
  • Look for typos. Remember that JavaScript is a case-sensitive language.
  • Use a JavaScript debugger. In Firefox, you can use the JavaScript console or the Firebug. In IE, you can use the Microsoft Script Debugger.
  • If you need to examine the JSON string returned from the server, you can use JSON Lint to make a single, long string human readable.
  • Email middleware-api@ucdavis.edu with a description of your problem and a trace of the request and response.