Totally agree on the mapping. In the connectors I documented, I painstakingly created links to the docs of each original API. If this mapping were provided up front, it would have saved me a lot of time.
Sent from my iPhone > On Dec 22, 2013, at 10:23 PM, Samisa Abeysinghe <[email protected]> wrote: > > Further to this, as I raised the concern in the other connector threads, we > need to know the API which we are wrapping. These are connector design > discussions, and hence, cannot decide the names without reference to the > original API. > > Once the connector is done, the user may not worry about the original API, as > at that time, it depends if the user knows the internals. But to get the > connector API right, and help debug the issues in the connector > implementation, we need the mapping. > > > > Thanks, > Samisa... > > > > Samisa Abeysinghe > > Vice President Training > > WSO2 Inc. > http://wso2.com > > > > >> On Mon, Dec 23, 2013 at 11:42 AM, Samisa Abeysinghe <[email protected]> wrote: >> We do not do any magic with the connector. It is better to have the same API >> for the sake of familiarity. >> >> It is the need to write code that we drop. >> >> Thanks, >> Samisa... >> >> >> >> Samisa Abeysinghe >> >> Vice President Training >> >> WSO2 Inc. >> http://wso2.com >> >> >> >> >>> On Mon, Dec 23, 2013 at 9:54 AM, Jackie Wheeler <[email protected]> wrote: >>> I don't quite agree. Our goal is to wrap the existing APIs and make it >>> easier for our users to use them. If the original API uses an unintuitive >>> or incorrect name (as is often the case), we have the opportunity to make >>> it clearer for our users. Likewise, our goal for the documentation should >>> not be just to copy and paste the original descriptions from the API's docs >>> but to improve on them where possible. Let's strive to make the connector >>> user experience better, not equal to, the experience with the original >>> APIs. >>> >>> Jackie >>> >>> Sent from my iPhone >>> >>>> On Dec 22, 2013, at 6:45 PM, Samisa Abeysinghe <[email protected]> wrote: >>>> >>>> >>>> >>>> >>>>> On Sat, Dec 21, 2013 at 1:42 AM, Jackie Wheeler <[email protected]> wrote: >>>>> I would change optionsObject to testObject or verifyObject, as "options" >>>>> doesn't make sense. Also, I'd change ObjectRestore to restoreObject. >>>> >>>> Guys, if we are wrapping the existing APIs with connector API, why would >>>> these sorts of naming questions appear. There is no point discussing the >>>> connector API, without relating to the corresponding back-end API. >>>> >>>> And if the back end API called it apples, we should not call it oranges. >>>> In other words, my point here, in simple terms is that, there should not >>>> be any "discussions" on the API semantics. It is already there in the >>>> original. >>>> >>>> >>>>> >>>>> Cheers, >>>>> Jackie >>>>> >>>>> >>>>>> On Fri, Dec 13, 2013 at 6:57 AM, indika prasad <[email protected]> >>>>>> wrote: >>>>>> *Introduction* >>>>>> >>>>>> Amazon S3 provides a simple web services interface that can be used to >>>>>> store >>>>>> and retrieve any amount of data, at any time, from anywhere on the web. >>>>>> It >>>>>> gives any developer access to the same highly scalable, reliable, secure, >>>>>> fast, inexpensive infrastructure that Amazon uses to run its own global >>>>>> network of web sites. The service aims to maximize benefits of scale and >>>>>> to >>>>>> pass those benefits on to developers. Amazon S3 API is used to deal with >>>>>> Amazon S3 to perform certain operations allowed by the API. >>>>>> >>>>>> *Amazon S3 Connector Summery* >>>>>> >>>>>> • Connector Name: amazons3-connector-1.0.0 >>>>>> • Version: 1.0.0 >>>>>> • Technology: REST >>>>>> >>>>>> *Authentication* >>>>>> >>>>>> The Amazon S3 REST API uses the standard HTTP Authorization header to >>>>>> pass >>>>>> authentication information. Developers are issued an AWS access key ID >>>>>> and >>>>>> AWS secret access key when they register. For request authentication, the >>>>>> AWSAccessKeyId element identifies the access key ID that was used to >>>>>> compute >>>>>> the signature and, indirectly, the developer making the request. >>>>>> >>>>>> *Domain definition* >>>>>> >>>>>> 1. *Bucket *- A bucket is a container for objects stored in Amazon >>>>>> S3. Every >>>>>> object is contained in a bucket. >>>>>> >>>>>> 2. *Object *-Objects are the fundamental entities stored in Amazon >>>>>> S3. >>>>>> Objects consist of object data and metadata. The data portion is opaque >>>>>> to >>>>>> Amazon S3. The metadata is a set of name-value pairs that describe the >>>>>> object. These include some default metadata, such as the date last >>>>>> modified >>>>>> and standard HTTP metadata, such as Content-Type. >>>>>> >>>>>> 3. *Bucket Policy* - Bucket policies provide centralized, access >>>>>> control to >>>>>> buckets and objects based on a variety of conditions, including Amazon S3 >>>>>> operations, requesters, resources, and aspects of the request (e.g., IP >>>>>> address). The policies are expressed in our access policy language and >>>>>> enable centralized management of permissions. The permissions attached >>>>>> to a >>>>>> bucket apply to all of the objects in that bucket. >>>>>> >>>>>> 4. *Lifecycle *–Lifecycle management defines how Amazon S3 manages >>>>>> objects >>>>>> during their lifetime. >>>>>> >>>>>> >>>>>> 5. *ACL *-Amazon S3 Access Control Lists (ACL) enable you to manage >>>>>> access >>>>>> to buckets and objects. Each bucket and object has an ACL attached to it >>>>>> as >>>>>> a subresource. It defines which AWS accounts or groups are granted access >>>>>> and the type of access. >>>>>> >>>>>> >>>>>> Selected Methods (24) for version 1.0.0 >>>>>> >>>>>> *OPERATION ON BUCKETS* >>>>>> *init *- configurations >>>>>> *getBuckets *- This implementation of the GET operation returns >>>>>> a list of >>>>>> all buckets owned by the authenticated sender of the request. >>>>>> *deleteBucket *- This implementation of the DELETE operation >>>>>> deletes the >>>>>> bucket named in the URI. All objects (including all object versions and >>>>>> Delete Markers) in the bucket must be deleted before the bucket itself >>>>>> can >>>>>> be deleted. >>>>>> *createBucket *- This implementation of the PUT operation >>>>>> creates a new >>>>>> bucket. >>>>>> *deleteBucketPolicy *-This implementation of the DELETE >>>>>> operation uses the >>>>>> policy sub resource to delete the policy on a specified bucket. >>>>>> *deleteBucketWebsiteConfiguration *- This operation removes the >>>>>> website >>>>>> configuration for a bucket. >>>>>> *getObjectsInBucket *- This implementation of the GET operation >>>>>> returns >>>>>> some or all (up to 1000) of the objects in a bucket. >>>>>> *getBucketLifeCycle *- Returns the lifecycle configuration >>>>>> information set >>>>>> on the bucket. >>>>>> *getBucketPolicy *- This implementation of the GET operation >>>>>> uses the >>>>>> policy subresource to return the policy of a specified bucket. >>>>>> *getBucketObjectVersions *- You can use the versions subresource >>>>>> to list >>>>>> metadata about all of the versions of objects in a bucket. >>>>>> *getBucketRequestPayment *- This implementation of the GET >>>>>> operation uses >>>>>> the requestPayment subresource to return the request payment >>>>>> configuration >>>>>> of a bucket. >>>>>> *getBucketVersioning *- This implementation of the GET operation >>>>>> uses the >>>>>> versioning subresource to return the versioning state of a bucket. >>>>>> *createBucketWebsiteConfiguration *- Sets the configuration of >>>>>> the website >>>>>> that is specified in the website subresource. >>>>>> *getWebSiteConfiguration *- This implementation of the GET >>>>>> operation >>>>>> returns the website configuration associated with a bucket. >>>>>> *checkBucketPermission *- This operation is useful to >>>>>> determine if a bucket >>>>>> exists and you have permission to access it. >>>>>> *createBucketPolicy*- This implementation of the PUT operation >>>>>> uses the >>>>>> policy subresource to add to or replace a policy on a bucket. >>>>>> *getBucketACL *- This implementation of the GET operation >>>>>> uses the acl >>>>>> subresource to return the access control list (ACL) of a bucket. >>>>>> >>>>>> *OPERATIONS ON OBJECTS* >>>>>> *deleteObject *- The DELETE operation removes the null version >>>>>> (if there is >>>>>> one) of an object and inserts a delete marker, which becomes the latest >>>>>> version of the object. >>>>>> *deleteMultipleObjects *- The Multi-Object Delete >>>>>> operation enables you to >>>>>> delete multiple objects from a bucket using a single HTTP request. If you >>>>>> know the object keys that you want to delete, then this operation >>>>>> provides a >>>>>> suitable alternative to sending individual delete requests. >>>>>> *getObject *- This implementation of the GET operation retrieves >>>>>> objects >>>>>> from Amazon S3. >>>>>> *createObject *- The POST operation adds an object to a >>>>>> specified bucket >>>>>> using HTML forms. >>>>>> *getObjectMetaData *- The HEAD operation retrieves metadata from >>>>>> an object >>>>>> without returning the object itself. >>>>>> *createObjectACL *- This implementation of the PUT operation >>>>>> uses the acl >>>>>> subresource to set the access control list (ACL) permissions for an >>>>>> object >>>>>> that already exists in a bucket. >>>>>> *createObjectCopy *- This implementation of the PUT operation >>>>>> creates a >>>>>> copy of an object that is already stored in Amazon S3. >>>>>> >>>>>> >>>>>> Methods that are not going to implement with version 1.0.0 >>>>>> *OPERATION ON BUCKETS* >>>>>> *getBucketCORS *- Returns the cors configuration information set >>>>>> for the >>>>>> bucket. >>>>>> *listMultipartUploads *- This operation lists in-progress >>>>>> multipart >>>>>> uploads. An in-progress multipart upload is a multipart upload that has >>>>>> been >>>>>> initiated, using the Initiate Multipart Upload request, but has not yet >>>>>> been >>>>>> completed or aborted. >>>>>> *createBucketACL *- This implementation of the PUT operation >>>>>> uses the acl >>>>>> subresource to set the permissions on an existing bucket using access >>>>>> control lists (ACL). >>>>>> *createBucketCORS *- Sets the cors configuration for your >>>>>> bucket. If the >>>>>> configuration exists, Amazon S3 replaces it. >>>>>> *createBucketLifeCycle *- Creates a new lifecycle configuration >>>>>> for the >>>>>> bucket or replaces an existing lifecycle configuration. >>>>>> *createBucketLogging *- This implementation of the PUT operation >>>>>> uses the >>>>>> logging subresource to set the logging parameters for a bucket and to >>>>>> specify permissions for who can view and modify the logging parameters. >>>>>> To >>>>>> set the logging status of a bucket, you must be the bucket owner. >>>>>> (NOTE: The logging implementation of PUT Bucket is a beta >>>>>> feature.) >>>>>> *createBucketNotification *- This implementation of the PUT >>>>>> operation uses >>>>>> the notification subresource to enable notifications of specified events >>>>>> for >>>>>> a bucket. >>>>>> *createBucketTagging *- This implementation of the PUT operation >>>>>> uses the >>>>>> tagging subresource to add a set of tags to an existing bucket. >>>>>> *deleteBucketTagging *- This implementation of the DELETE >>>>>> operation uses >>>>>> the tagging subresource to remove a tag set from the specified bucket. >>>>>> *createBucketRequestPayment *- This implementation of the PUT >>>>>> operation >>>>>> uses the requestPayment subresource to set the request payment >>>>>> configuration >>>>>> of a bucket. >>>>>> *createBucketVersioning *- This implementation of the PUT >>>>>> operation uses >>>>>> the versioning subresource to set the versioning state of an existing >>>>>> bucket. >>>>>> *deleteBucketCors *-Deletes the cors configuration information >>>>>> set for the >>>>>> bucket. >>>>>> *getBucketLocation *- This implementation of the GET operation >>>>>> uses the >>>>>> location subresource to return a bucket's Region. >>>>>> *getBucketLogging *- This implementation of the GET operation >>>>>> uses the >>>>>> logging subresource to return the logging status of a bucket and the >>>>>> permissions users have to view and modify that status. (NOTE: Logging >>>>>> functionality is currently in beta). >>>>>> *getBucketNotification *- This implementation of the GET >>>>>> operation uses the >>>>>> notification subresource to return the notification configuration of a >>>>>> bucket. >>>>>> *getBucketTagging *- This implementation of the GET operation >>>>>> uses the >>>>>> tagging subresource to return the tag set associated with the bucket. >>>>>> *deleteBucketLifecycle *- Deletes the lifecycle >>>>>> configuration from the >>>>>> specified bucket. >>>>>> >>>>>> *OPERATIONS ON OBJECTS* >>>>>> *createObject *- This implementation of the PUT operation adds >>>>>> an object to >>>>>> a bucket. >>>>>> *optionsObject *- A browser can send this preflight request to >>>>>> Amazon S3 to >>>>>> determine if it can send an actual request with the specific origin, HTTP >>>>>> method, and headers. >>>>>> *ObjectRestore *- Restores a temporary copy of an archived >>>>>> object. In the >>>>>> request, you specify the number of days that you want the restored copy >>>>>> to >>>>>> exist. After the specified period, Amazon S3 deletes the temporary copy. >>>>>> Note that the object remains archived; Amazon S3 deletes only the >>>>>> restored >>>>>> copy. >>>>>> *initiateMultipartUpload *- This operation initiates a multipart >>>>>> upload and >>>>>> returns an upload ID. This upload ID is used to associate all the parts >>>>>> in >>>>>> the specific multipart upload. >>>>>> *uploadPart *- This operation uploads a part in a multipart >>>>>> upload. >>>>>> Note: In this operation you provide part data in your request. >>>>>> However, you >>>>>> have an option to specify your existing Amazon S3 object as data source >>>>>> for >>>>>> the part getting uploaded. To upload a part from an existing object you >>>>>> use >>>>>> the Upload Part (Copy) operation. For more information, see Upload Part - >>>>>> Copy. >>>>>> *uploadPartCopy *- Uploads a part by copying data from an >>>>>> existing object >>>>>> as data source. >>>>>> *completeMultipartUpload *This operation completes a >>>>>> multipart upload by >>>>>> assembling previously uploaded parts. >>>>>> *abortMultipartUpload *- This operation aborts a multipart >>>>>> upload. >>>>>> *getObjectACL *- This implementation of the GET operation uses >>>>>> the acl >>>>>> subresource to return the access control list (ACL) of an object. >>>>>> *getObjectTorrent *- This implementation of the GET operation >>>>>> uses the >>>>>> torrent subresource to return torrent files from a bucket. >>>>>> *listParts *- This operation lists the parts that have been >>>>>> uploaded for a >>>>>> specific multipart upload. >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> View this message in context: >>>>>> http://wso2-oxygen-tank.10903.n7.nabble.com/Connector-amazon-s3-tp89705.html >>>>>> Sent from the WSO2 Architecture mailing list archive at Nabble.com. >>>>>> _______________________________________________ >>>>>> Architecture mailing list >>>>>> [email protected] >>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>> >>>>> >>>>> >>>>> -- >>>>> Jackie Wheeler >>>>> VP, Technical Content >>>>> WSO2, Inc. >>>>> Mobile: +1 510 725-2876 >>>>> http://wso2.com/ >>>>> >>>>> _______________________________________________ >>>>> Architecture mailing list >>>>> [email protected] >>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>> >>>> >>>> _______________________________________________ >>>> Architecture mailing list >>>> [email protected] >>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>> >>> _______________________________________________ >>> Architecture mailing list >>> [email protected] >>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>> >> > > _______________________________________________ > Architecture mailing list > [email protected] > https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
