Hi all, further to "Issues we've encountered while migrating affiliations from V2.1 to V3.0"
Rob: Thanks for the pointer to https://trello.com/b/0RcSj7uQ/member-feedback, that was a pleasant discovery.
Re: standardisation of category values between xml and json messages? OK. Fair enough.
And yes, the change notes should be something we explicitly review for new releases.
Where we're at: the team has just finished migration of works, funding, and peer review tasks to V3.0 and in the process have dealt with the following:
The minor:
No surprise that the V3_0 swagger is enumerating the values as the old underscore+uppercase -- c.f., the new required hyphen+lowercase -- in all elements and not just the affiliation elements that we dealt with earlier, i.e.:
FundingV3_0 { type enum: [ 'GRANT', 'CONTRACT', 'AWARD', 'SALARY_AWARD' ] , FundingContributorAttributesV3_0 { contributor-role enum: [ 'LEAD', 'CO_LEAD', 'SUPPORTED_BY', 'OTHER_CONTRIBUTION' ] } }
PeerReviewV3_0 { reviewer-role enum: [ 'REVIEWER', 'EDITOR', 'MEMBER', 'CHAIR', 'ORGANIZER' ] , review-type enum: [ 'REVIEW', 'EVALUATION' ] , subject-type enum: [ 'ARTISTIC_PERFORMANCE', 'BOOK_CHAPTER', 'BOOK_REVIEW', 'BOOK', 'CONFERENCE_ABSTRACT', 'CONFERENCE_PAPER', 'CONFERENCE_POSTER', 'DATA_SET', 'DICTIONARY_ENTRY', 'DISCLOSURE', 'DISSERTATION_THESIS', 'EDITED_BOOK', 'ENCYCLOPEDIA_ENTRY', 'INVENTION', 'JOURNAL_ARTICLE', 'JOURNAL_ISSUE', 'LECTURE_SPEECH', 'LICENSE', 'MAGAZINE_ARTICLE', 'MANUAL', 'NEWSLETTER_ARTICLE', 'NEWSPAPER_ARTICLE', 'ONLINE_RESOURCE', 'OTHER', 'PATENT', 'PREPRINT', 'REGISTERED_COPYRIGHT', 'REPORT', 'RESEARCH_TECHNIQUE', 'RESEARCH_TOOL', 'SOFTWARE', 'SPIN_OFF_COMPANY', 'STANDARDS_AND_POLICY', 'SUPERVISED_STUDENT_PUBLICATION', 'TECHNICAL_STANDARD', 'TEST', 'TRADEMARK', 'TRANSLATION', 'WEBSITE', 'WORKING_PAPER', 'UNDEFINED' ] }
WorkV3_0 { type enum: [ 'ARTISTIC_PERFORMANCE', 'BOOK_CHAPTER', 'BOOK_REVIEW', 'BOOK', 'CONFERENCE_ABSTRACT', 'CONFERENCE_PAPER', 'CONFERENCE_POSTER', 'DATA_SET', 'DICTIONARY_ENTRY', 'DISCLOSURE', 'DISSERTATION_THESIS', 'EDITED_BOOK', 'ENCYCLOPEDIA_ENTRY', 'INVENTION', 'JOURNAL_ARTICLE', 'JOURNAL_ISSUE', 'LECTURE_SPEECH', 'LICENSE', 'MAGAZINE_ARTICLE', 'MANUAL', 'NEWSLETTER_ARTICLE', 'NEWSPAPER_ARTICLE', 'ONLINE_RESOURCE', 'OTHER', 'PATENT', 'PREPRINT', 'REGISTERED_COPYRIGHT', 'REPORT', 'RESEARCH_TECHNIQUE', 'RESEARCH_TOOL', 'SOFTWARE', 'SPIN_OFF_COMPANY', 'STANDARDS_AND_POLICY', 'SUPERVISED_STUDENT_PUBLICATION', 'TECHNICAL_STANDARD', 'TEST', 'TRADEMARK', 'TRANSLATION', 'WEBSITE', 'WORKING_PAPER', 'UNDEFINED' ] , citation enum: [ 'FORMATTED_UNSPECIFIED', 'BIBTEX', 'FORMATTED_APA', 'FORMATTED_HARVARD', 'FORMATTED_IEEE', 'FORMATTED_MLA', 'FORMATTED_VANCOUVER', 'FORMATTED_CHICAGO', 'RIS' ] , ContributorAttributesV3_0 { contributor-sequence enum: [ 'FIRST', 'ADDITIONAL' ], contributor-role enum: [ 'AUTHOR', 'ASSIGNEE', 'EDITOR', 'CHAIR_OR_TRANSLATOR', 'CO_INVESTIGATOR', 'CO_INVENTOR', 'GRADUATE_STUDENT', 'OTHER_INVENTOR', 'PRINCIPAL_INVESTIGATOR', 'POSTDOCTORAL_RESEARCHER', 'SUPPORT_STAFF' ] } }
and
Common { visiblity enum: [ 'LIMITED', 'REGISTERED_ONLY', 'PUBLIC', 'PRIVATE' ] , ExternalIDV3_0 { external-id-relationship enum: [ 'PART_OF', 'SELF', 'VERSION_OF' ] } }
The major:
The Amount/Currency element in the Funding V3_0 model is broken. The model shows,
FundingV3_0 {
AmountV3_0 {
value (string, optional),
currency-code ( Currency )
}
}
and where Currency is its own element:
Currency {
currencyCode (string, optional),
defaultFractionDigits (integer, optional),
numericCode (integer, optional),
displayName (string, optional),
symbol (string, optional)
}
Posting this structure throws an error:
{ "response-code": 400, "developer-message": "400 Bad request: invalid JSON - Cannot deserialize instance of `java.lang.String` out of START_OBJECT token\n at [Source: (org.apache.catalina.connector.CoyoteInputStream); line: 19, column: 22] (through reference chain: org.orcid.jaxb.model.v3.release.record.Funding[\"amount\"]->org.orcid.jaxb.model.v3.release.common.Amount[\"currency-code\"])", "user-message": "Invalid JSON.", "error-code": 9047, "more-info": "https://members.orcid.org/api/resources/troubleshooting"}
Because what the model is appears to be expecting is the much simpler structure from V1.2 - V2.1, i.e, a model of:
FundingV3_0 {
AmountV3_0 {
value (string, optional),
currency-code (string)
}
}
At least posting with "amount":{"value":"500000", "currency-code":"NZD"} as part of a message to /V3.0/{orcid}/funding is successful.
The weird:
Between V3.0_rc1 and V3.0_rc2, media-type seems to have been silently dropped from publication-date so that with V3.0, works can no longer record publication dates for different media versions of the same document. This doesn't appear to be in any change notes that we can find.
Is this intended? As recording different dates, e.g., for online and print publication of an article, seems like a reasonable use knowing why this was removed would be useful.
Finally
It's good to know that these issues are being thought about as with the current situation we're having to warn our Member's developers away from using the OpenAPI Spec for anything other the Swagger UI toy. That's a real shame as it's should be a tool to reduce a lot of the pain of integration.
Best wishes,
Rad, Roshan, and Jason.
--
You received this message because you are subscribed to the Google Groups "ORCID API Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to orcid-api-use...@googlegroups.com.
To post to this group, send email to orcid-a...@googlegroups.com.
Visit this group at https://groups.google.com/group/orcid-api-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/orcid-api-users/7137cd91-1700-4883-ae22-17576e64a174%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.