Closed ctstone closed 4 years ago
Scheduled for 1/30/2020
Notes from API Review Board:
Link to recording (MSFT INTERNAL): https://msit.microsoftstream.com/video/c5163ca9-9adf-4674-a738-dd1d04ffe5ac
Initial Notes:
FormReceiptClient
=> ReceiptRecognizerClient
StartAnalysisAsync()
=> StartRecognitionAsync()
Maybe do an experiment where we release separate libraries (business level vs. lower-level)
[ ] TODO: @annelo-msft and @KrzysztofCwalina will help design higher-level API (split or not) [ ] TODO: We need to get on the same page for versioning of the library. [ ] TODO: Align guidance for long running operations to operations, aligned with REST API guidelines
We use an API review tool (apiview) to support .NET and Java API reviews. For Python and TypeScript, use the API extractor tool, then submit the output as a Draft PR to the relevant repository (azure-sdk-for-python or azure-sdk-for-js).
A champion scenario is a use case that the consumer of the client library is commonly expected to perform. Champion scenarios are used to ensure the developer experience is exemplary for the common cases. You need to show the entire code sample (including error handling, as an example) for the champion scenarios.
A board review is generally split into two parts, with additional meetings as required
Part 1 - Introducing the board to the service:
After part 1, you may schedule additional meetings with architects to refine the API and work on implementation.
Part 2 - the "GA" meeting
Scheduled for 4/30
Link to recording (MSFT INTERNAL): https://msit.microsoftstream.com/video/dd4ba1ff-0400-96d1-ebd7-f1ea8fed4db1
Q: Why is form field and form page on the same level?
Q: Is there a risk of a large number of extension methods to identify receipt locales?
Q: Is ReceiptLocale the best first name/concept, if there are different structures of receipts within locales? Could this be generalized outside of locale?
FOLLOW-UP: Consider how new receipt types with strongly-typed fields would be added to the API
Q: Could useTrainingLabels be made a required field, rather than optional with default:false?
Concern: Having two clients in the Client->TrainingClient is a strange way of addressing discoverability problem of training. Could the direction be flipped such that the training client flows into a client?
Q: For management APIs "LastModified" is actually "LastUpdated" in the swagger
Q: A scenario is two different entities with no keys to resource/subscription/credentials of the other entities. How is copy covered out-of-band in this case?
Q: Is there a model versioning, ie can clientv2 call modelv3?
FOLLOW-UP on incorporating classification of recognized model into the model/submodel name
Overall, largely similar in both usage and concerns as .NET review.
Differentiation: No AsUSReceipt extension; instead, determined by receiptlocale that's passed in to the client functions
Q: How much variation is expected in a receipt based on locale?
Q: Is there a scenario where the customer doesn't know the locale of the receipt?
NOTE: In samples, include retrieving the confidence
The Basics
netahw
; Dev Lead:rparab
About this client library
Artifacts required (per language)
We use an API review tool (apiview) to support .NET and Java API reviews. For Python and TypeScript, use the API extractor tool, then submit the output as a Draft PR to the relevant repository (azure-sdk-for-python or azure-sdk-for-js).
.NET
Java
WIP, sharing result of autorest v3: https://github.com/christopherlu0101/azure-sdk-for-java/tree/falu/fr2sdk-java/sdk/formrecognizer
Python
WIP, not ready for PR, but sharing here as a preview: https://github.com/ctstone/azure-sdk-for-python/tree/form-recognizer-v2.0-GA/sdk/cognitiveservices/azure-cognitiveservices-formrecognizer
TypeScript
Not started
Champion Scenarios
A champion scenario is a use case that the consumer of the client library is commonly expected to perform. Champion scenarios are used to ensure the developer experience is exemplary for the common cases. You need to show the entire code sample (including error handling, as an example) for the champion scenarios.
Champion Scenario 1:
Champion Scenario 2:
Agenda for the review
A board review is generally split into two parts, with additional meetings as required
Part 1 - Introducing the board to the service:
After part 1, you may schedule additional meetings with architects to refine the API and work on implementation.
Part 2 - the "GA" meeting
Thank you for your submission