[Archivesspace_Users_Group] GET & POST methods for terms
James Bullen
james at hudmol.com
Thu Feb 9 18:24:57 EST 2017
Hi Jason,
As I said, terms are managed via their parent records’ endpoints. So, for example:
POST /subjects
{
"source": "local",
"terms":
[
{
"term": "Sausages",
"term_type": "cultural_context",
"vocabulary": "/vocabularies/1"
}
],
"vocabulary": "/vocabularies/1”
}
Will return something like:
{
"status": "Created",
"id": 4,
"lock_version": 0,
"stale": true,
"uri": "/subjects/4",
"warnings": []
}
And then, you can do:
/terms q=Saus
{
"first_page": 1,
"last_page": 1,
"this_page": 1,
"results":
[
{
"lock_version": 0,
"term": "Sausages",
"created_by": "admin",
"last_modified_by": "admin",
"create_time": "2017-02-09T23:16:24Z",
"system_mtime": "2017-02-09T23:16:24Z",
"user_mtime": "2017-02-09T23:16:24Z",
"term_type": "cultural_context",
"jsonmodel_type": "term",
"uri": "/terms/5",
"vocabulary": "/vocabularies/1"
}
]
}
And, yes, the id in the uri is the db id, so:
mysql> select id, vocab_id, term, term_type_id from term where id=5;
+----+----------+----------+--------------+
| id | vocab_id | term | term_type_id |
+----+----------+----------+--------------+
| 5 | 1 | Sausages | 1267 |
+----+----------+----------+--------------+
1 row in set (0.00 sec)
I you wanted to do bulk updates to terms you could do it via the db, or write an endpoint to do it.
Hope that helps.
Cheers,
James
> On Feb 10, 2017, at 10:05 AM, Jason Loeffler <j at minorscience.com> wrote:
>
> Thanks, James. Looking at the docs again, I now see my misunderstanding.
>
> term.*.uri is indeed misleading. Could be a mnemonic for the term database identifier (term.id <http://term.id/>) or otherwise a development artifact.
>
> So I take it 1) terms can't be updated by conventional means (i.e. the API) and 2) my primary alternative is to issue database queries in order to perform bulk updates to a set of terms?
>
> JL
>
>
> On Thu, Feb 9, 2017 at 5:40 PM, James Bullen <james at hudmol.com <mailto:james at hudmol.com>> wrote:
>
> Hi Jason,
>
> There is a GET /terms endpoint. It does a search and takes a q=.
>
> There is no GET /terms/:id - I guess this is the one that’s giving you a Not Found.
>
> And there is no POST /terms.
>
> Here’s the controller:
> https://github.com/archivesspace/archivesspace/blob/master/backend/app/controllers/term.rb <https://github.com/archivesspace/archivesspace/blob/master/backend/app/controllers/term.rb>
>
> Terms aren’t really first order objects (they get managed via their parent object), so I’m not sure why they have a uri. For example:
>
>
> /terms q=Audio
> {
> "first_page": 1,
> "last_page": 1,
> "this_page": 1,
> "results":
> [
> {
> "lock_version": 0,
> "term": "Audio",
> "created_by": "admin",
> "last_modified_by": "admin",
> "create_time": "2017-02-07T05:34:29Z",
> "system_mtime": "2017-02-07T05:34:29Z",
> "user_mtime": "2017-02-07T05:34:29Z",
> "term_type": "genre_form",
> "jsonmodel_type": "term",
> "uri": "/terms/3",
> "vocabulary": "/vocabularies/1"
> }
> ]
> }
>
> You see it has a uri (/terms/3), but that is a bit of a lie because there is no corresponding endpoint. There could well be a good reason for this, but I’m not aware of it.
>
>
> Cheers,
> James
>
>
>> On Feb 10, 2017, at 6:40 AM, Jason Loeffler <j at minorscience.com <mailto:j at minorscience.com>> wrote:
>>
>> Can anyone confirm whether the GET method for terms works? I'm getting 'Not Found'. Also, is there an undocumented POST method for terms?
>>
>> Thanks.
>>
>> Jason Loeffler
>> Technology Consultant | The American Academy in Rome
>> Minor Science | Application Development & Metadata Strategy
>> Brooklyn, New York
>> jason at minorscience.com <mailto:jason at minorscience.com>
>> (347) 405-0826 <tel:(347)%20405-0826>
>> minorscience (Skype)
>>
>>
>> _______________________________________________
>> Archivesspace_Users_Group mailing list
>> Archivesspace_Users_Group at lyralists.lyrasis.org <mailto:Archivesspace_Users_Group at lyralists.lyrasis.org>
>> http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group <http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group>
>>
>>
>> !DSPAM:589cc60444364107784971!
>
>
> _______________________________________________
> Archivesspace_Users_Group mailing list
> Archivesspace_Users_Group at lyralists.lyrasis.org <mailto:Archivesspace_Users_Group at lyralists.lyrasis.org>
> http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group <http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group>
>
>
> !DSPAM:589cf5e8158171473716713! _______________________________________________
> Archivesspace_Users_Group mailing list
> Archivesspace_Users_Group at lyralists.lyrasis.org <mailto:Archivesspace_Users_Group at lyralists.lyrasis.org>
> http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group <http://lyralists.lyrasis.org/mailman/listinfo/archivesspace_users_group>
>
>
> !DSPAM:589cf5e8158171473716713!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lyralists.lyrasis.org/pipermail/archivesspace_users_group/attachments/20170210/149bc21b/attachment.html>
More information about the Archivesspace_Users_Group
mailing list