Person
GET (Retrieve), POST (Create), PUT (Update), and DELETE individual Person records
GET: An individual Person record
Request
GET /directory/person/123 HOST: www.sciencebase.gov Accept: application/json
Response
HTTP/1.1 200 OK Content-Type: application/json;charset=utf-8 { "link":{ "rel":"self", "url":"https://www.sciencebase.gov/directory/person/1193" }, "id":1193, "name":"Sky Bristol/RGIO/USGS/DOI", "displayName":"Sky Bristol", "displayText":"Sky Bristol", "url":"https://my.usgs.gov/catalog/Global/catalogParty/show/1193", "email":"sbristol@usgs.gov", "description":"Sky Bristol currently manages the Applied Earth Systems Informatics Research branch in the Core Science Analytics and Synthesis program of the Core Science Systems Mission Area. He strives to develop innovative technology solutions for USGS science.", "richDescriptionHtml":"<p>\n\tSky Bristol currently manages the Applied Earth Systems Informatics Research branch in the Core Science Analytics and Synthesis program of the Core Science Systems Mission Area. He strives to develop innovative technology solutions for USGS science.<\/p>", "aliases":[ { "id":4, "alias":"Bristol, RS", "annotation":"publishing alias" }, { "id":1, "alias":"R. Sky Bristol", "annotation":"publishing alias" }, { "id":2, "alias":"Robert Schuyler Bristol", "annotation":"full legal name" }, { "id":3, "alias":"Bristol, R. Sky", "annotation":"publishing alias" } ], "active":true, "primaryLocation":{ "id":1866, "name":"Sky Bristol/RGIO/USGS/DOI - Primary Location", "building":"DFC Bldg 810", "buildingCode":"KBT", "officePhone":"303-202-4181", "faxPhone":"303-202-4710", "mailAddress":{ "line1":"Box 25046, Denver Federal Center, Mail Stop 306", "mailStopCode":"306", "city":"Denver", "state":"CO", "zip":"80225-0046", "country":"USA" }, "streetAddress":{ "line1":"West 6th Ave. & Kipling St., DFC Bldg. 810", "city":"Lakewood", "state":"CO", "zip":"80225-0046", "country":"US" }, "longitude":-105.1247994, "latitude2":null }, "partyLocations":[ { "link":{ "rel":"self", "href":"https://www.sciencebase.gov/directory/location/1866/get" }, "locationId":1866, "displayName":"Sky Bristol/RGIO/USGS/DOI - Primary Location", "primary":true, "sort":1 } ], "permissions":{ "read":{ "acl":[ "PUBLIC" ] }, "write":{ "acl":[ "USER:sbristol@usgs.gov", "ROLE:PlotDataAdmin", "ROLE:ScienceBase_DataAdmin" ] } }, "firstName":"Sky", "lastName":"Bristol", "jobTitle":"Manager Applied Earth Systems Informatics Research", "cellPhone":"303-241-4122", "username":"sbristol@usgs.gov", "supervisorId":6715, "supervisorDisplayName":"Michael P McDermott/GIO/USGS/DOI", "supervisor":{ "link":{ "rel":"self", "href":"https://www.sciencebase.gov/directory/person/6715" }, "id":6715, "displayText":"Michael P McDermott" }, "organizationId":59505, "organization":{ "link":{ "rel":"self", "href":"https://www.sciencebase.gov/directory/organization/59505" }, "id":59505, "displayText":"Applied Earth Systems Informatics Research" }, "protectedFromLdap":false, "extensions":{ "usgs":{ "employeeId":49602, "notesName":"Sky Bristol/RGIO/USGS/DOI", "orgCode":"GGHIEJ3000", "buildingCode":"KBT" } } }
TODO: should self links be to the instance class or just person regardless
Notes About GET and the Person data
- 404 is returned when no matching records found for ID
POST: Create a New Person Record
Request
POST /directory/person HOST: www.sciencebase.gov Content-Type: application/json Accept: application/json { "name":"John Doe/SomeOrg", "displayName":"John Doe", "firstName":"John", "lastName":"Doe", "email":"jdoe@someorg.org", .... }
Response
HTTP/1.1 201 Created Content-Type: application/json;charset=utf-8 { "name":"John Doe/SomeOrg", "displayName":"John Doe", "firstName":"John", "lastName":"Doe", "email":"jdoe@someorg.org", .... }
PUT: Update an Existing Person Record
Request
PUT /directory/person/123 HOST: www.sciencebase.gov Content-Type: application/json Accept: application/json { "name":"John Doe/SomeOrg", "displayName":"John Doe", "firstName":"John", "lastName":"Doe", "email":"jdoe@someorg.org", .... }
Response
HTTP/1.1 200 OK Content-Type: application/json;charset=utf-8 { "name":"John Doe/SomeOrg", "displayName":"John Doe", "firstName":"John", "lastName":"Doe", "email":"jdoe@someorg.org", .... }
DELETE: Remove a record
Request
DELETE /directory/person/123 HOST: www.sciencebase.gov Accept: application/json
Response
HTTP/1.1 200 OK application/json;charset=utf-8
(TODO: finalizes behavior/messages for deletes. Although the http status will be the most important result, we may need some messages in the body.)
Person Properties
ID
Unique identifier, an integer. This is used in the URI to identify the record for GET, POST, PUT and DELETE.
"id":123
Name
A unique name for the record. This property is required for a Party.
"name":"John Doe/DOI/USGS"
DisplayName
An optional label to display instead of the record name.
"displayName": "John Doe"
DisplayText
A read-only property add for convenience.
"displayText": "John Doe"
URL
A web address for a page about the party.
"url": "http://example.gov/homePageOf/jdoe"
"email": "jdoe@usgs.gov"
Description
"description": "The happy employee who works on stuff."
Rich Description HTML
"richDescriptionHtml": "The <b>happy</b> employe who “works” on <i>stuff</i>."
Aliases
aliases: [ { id: 3, alias: "Doe, John", annotation: "publishing alias" }, { id: 4, alias: "Doe, J", annotation: "publishing alias" } ]
Active
A boolean flag to indicate the record is active.
"active": true
Primary Location
primaryLocation: { id: 1866, name: "Sky Bristol/RGIO/USGS/DOI - Primary Location", building: "DFC Bldg 810", buildingCode: "KBT", officePhone: "303-202-4181", faxPhone: "303-202-4229", mailAddress: {line1: "Box 25046, Denver Federal Center, Mail Stop 306", mailStopCode: "306", city: "Denver", state: "CO", zip: "80225-0046", country: "USA" }, streetAddress: {line1: "West 6th Ave. & Kipling St., DFC Bldg. 810", city: "Lakewood", state: "CO", zip: "80225-0046", country: "US" }, latitude2: null },
First Name
"firstName": "John"
Last Name
"lastName": "Doe"
Job Title
"jobTitle": "Manager of Directors"
Cell Phone
"cellPhone": "555-123-1234"
Username (myUSGS)
"username": "jdoe@usgs.gov"
Supervisor ID
"supervisorId": 321
Supervisor
"supervisor": { link: { rel: "self", href: "https://beta.sciencebase.gov/directory/person/321 } id: 321 displayText: "Sue Jones" }
Organization ID
"organizationId": 678
Organization
"organization": { link: { rel: "self", href: "https://beta.sciencebase.gov/directory/organization/678 } id: 321 displayText: "Some Org" }
protectedFromLdap
A flag to disable updates from Active Directory
"protectedFromLdap": false
Extensions
A collection of objects to extend the properties beyond the core Person attributes. USGS people have a USGS extenstion for USGS specific attributes.
"extensions": { usgs: { employeeId: 10101, notesName: "John Doe/RGIO/USGS/DOI", orgCode: "GGGGGG9999", buildingCode: "ABC" } }