W3C home > Mailing lists > Public > public-webplatform@w3.org > November 2012

Re: Creating API pages

From: Scott Rowe <scottrowe@google.com>
Date: Tue, 20 Nov 2012 08:25:49 -0800
Message-ID: <CAHZLcPriL0uE4zf+awSKgcZo6+0mpR+gypnqkpm4yLS8y4X5Ew@mail.gmail.com>
To: Chris Mills <cmills@w3.org>
Cc: Julee Burdekin <julee@adobe.com>, "public-webplatform@w3.org" <public-webplatform@w3.org>, Alex Komoroske <komoroske@google.com>
Yep.
The New_Page <http://docs.webplatform.org/wiki/WPD:New_Page> page is up to
date with example text and links, just like
the Getting Started<http://docs.webplatform.org/wiki/WPD:Getting_Started#Guides_to_creating_pages>page
which has a section that anticipates additional guides with a link to
the Creating API
Pages<http://docs.webplatform.org/wiki/WPD:Creating_API_pages>guide,
where all of the above is captured, if not tamed.
+SCott



On Tue, Nov 20, 2012 at 2:31 AM, Chris Mills <cmills@w3.org> wrote:

> This sounds pretty reasonable - thanks for sharing! Have you shared this
> information on any of the guideline pages yet?
>
> Best,
>
> Chris Mills
> Open standards evangelist, Opera Software
> W3C fellow
> Co-chair, web education community group, W3C
>
> * Author of "Practical CSS3: Develop and Design"
>   (
> http://my.opera.com/chrismills/blog/2012/07/12/practical-css3-my-book-is-finally-published
> )
> * The definitive guide to developing with the webplatform:
>   http://www.webplatform.org
>
> On 16 Nov 2012, at 18:36, Scott Rowe <scottrowe@google.com> wrote:
>
> > Thanks Julee and Mike!
> >
> > I'm sure everyone appreciates your careful and considerate assessment of
> these issues and the work you did to vet our assumptions. I certainly do!
> >
> > And a big THANKS to everyone involved in this effort!!!
> >
> > So at this point I'd like to mix a metaphor and sew up this thread!
> >
> > I believe we have achieved our original goal: removing enough of the
> obstacles to creating API pages to be able to continue with the work on new
> APIs. To review our decisions:
> >
> > We will continue to maintain a separation between the apis and dom
> namespaces.
> >
> > Considerations for the dom namespace may be taken up in a separate
> thread.
> >
> > The organization of the apis namespace will be as follows:
> >
> > apis
> > apis/<apilist>
> > apis/<apilist>/<apiObject>/<event>
> > apis/<apilist>/<apiObject>/<method>
> > apis/<apilist>/<apiObject>/<property>
> >
> > Note: we are eliminating all intermediate pages and object type
> identification from the URL. For example:
> >
> > apis/webrtc/MediaStreamTrackList/length
> >
> > While we are reasonably confident that there will be no collisions, such
> as  a property and a method of the same name, we are resolved to deal with
> these by inserting identifying labels, for example:
> >
> > apis/myapi/myAPI/void-property
> > apis/myapi/myAPI/void-method
> >
> > Such identifiers, however, are the exception, not the rule.
> >
> > Considerations for artifacts such as constants and events may be taken
> up in a separate thread. For now, these may be simply described in the
> summary sections of those properties and methods to which they belong.
> >
> > Okay, time for me to get cracking on the WebRTC API!
> >
> > +Scott
> >
> >
> >
> >
> >
> >
> > On Thu, Nov 15, 2012 at 2:48 PM, Julee Burdekin <julee@adobe.com> wrote:
> > Just to close the loop on the section "Moving all apis under dom",
> that's not exactly what was was proposed. It was more that a unified
> system, derived from the root browser objects, would more accurately
> represent that we are documenting one (reference) browser interface of the
> web platform. And then separate pages would list out the bundles that
> constitute the individual feature specs.
> >
> > But my primary concern is that we provide one place where the user
> arrives and "gets it", where the architecture is self-evident to the end
> user, and manifests the environment against which the user is coding. And
> we can provide this experience other ways, such as:
> >
> > * top-level pages diagram where things are and explain how to use the
> different sections
> > * apilist pages call out the objects from which they are derived
> > * root object pages mention which apis are derived from them
> >
> > Wherever possible, we should explain the gaps and provide bridges. Given
> that, I'm OK with moving ahead on the structure worked on on the
> WPD:Creating_API_pages <
> http://docs.webplatform.org/wiki/WPD:Creating_API_pages> page.
> >
> > Regards.
> >
> > J
> > ----------------------------
> > julee@adobe.com
> > @adobejulee
> >
> >
> > From:  Scott Rowe <scottrowe@google.com>
> > Date:  Wednesday, November 14, 2012 3:12 PM
> > To:  "public-webplatform@w3.org" <public-webplatform@w3.org>, Alex
> Komoroske <komoroske@google.com>
> > Subject:  Re: Creating API pages
> > Resent-From:  <public-webplatform@w3.org>
> > Resent-Date:  Wednesday, November 14, 2012 3:13 PM
> >
> >
> > Thanks to everyone who particpated on the call today to discuss the
> proposal and the apis architecture. Ahead of meeting notes, I'd like to
> review some of the main points and revisit the issues that were not fully
> resolved at the end of the call. It's rather imperative that we be able to
> move forward with the documenting the APIs, and I think we've resolved
> enough of the issues to be able to move forward without having to do too
> much revising or reorganizing of our docs down the road.
> > Could everyone please take a moment to read this and respond? Thanks!
> >
> > apis architecture
> >
> > We decided to remove the "intermediate" pages (objects, events, methods,
> and properties) from the namespace to keep the URLs shorter and eliminate
> the need to fill these pages with queries or redirects. The new api
> namespace architecture is as follows:
> >
> > apis
> > apis/<apilist>
> > apis/<apilist>/<apiObject>/<foo-event>
> > apis/<apilist>/<apiObject>/<bar-method>
> > apis/<apilist>/<apiObject>/<baz-property>
> >
> > Note: further discussion about the <apilist> namespace identifier is
> further on, but assumed here to be maintained.
> >
> >
> > I will begin rewriting the proposal for this and reorganizing the webrtc
> docs.
> >
> > constants
> >
> > We discussed the possibility of providing for constants (enumerations)
> that are shared across several methods within an object. I spoke with our
> own Dimitri Glazkov about this. Turns out that an API may provide for the
> case where a property could use only part of the enumeration (values 1 and
> 2, but not 3) while another property would use all values (1, 2, and 3) of
> a given enumeration. Constants are defined for the object, so this scenario
> is quite common.
> >
> > Now the challenge is how to represent the valid constants for a
> particular property. We need a way to specify constants 1 and 2 (but not 3)
> for property A, and specify constants 1, 2, and 3 for property B. Probably
> the best way is to follow the same approach we take with events, methods,
> and properties pages and the "Applies to" field.
> >
> > So, each constant would have its own page, i.e.
> apis/<apilist>/<apiObject>/<FOO-constant> and the properties page would
> have a summary table listing each of the valid constants. The trick here
> would be to provide each <FOO-constant> page with multiple "Applies to"
> fields so that these could be shared.
> >
> > This needs some thought and design expertise. For now, let's just move
> forward with constants listed per property.
> >
> > exceptions
> >
> > We need to describe the exceptions for a method. Same re-use scenario as
> with constants. So apis/<apilist>/<apiObject>/<Bar-exception> and the
> ability to "Applies to" to different methods. Note that often API methods
> use DOM exceptions, so this template needs to work for both dom and apis.
> Could get kind of hairy with multiple "Applies to" fields.
> >
> > Needs some thought and design expertise, too. For now, let's just move
> forward with exceptions listed per method.
> >
> > Move all apis under dom
> >
> > It was suggested that all of the api pages could be moved under the dom
> namespace.
> >
> > Early on we decided to keep the dom namespace separate from the apis
> namespace. The "non-dom" apis are more clearly defined on their own, and
> fitting them within the dom does not add any value. While it is true that
> most of the time an API is accessed within the context of a dom object,
> i.e. navigator.getUserMedia() or  window.indexedDB.open(), usually this
> context is only necessary to create the initial object, i.e. a
> LocalMediaStream object or an IDBOpenDBRequest object. That much is
> adequately covered in the documentation and needn't be spelled out in the
> URLs. And, as was pointed out in the call, our purpose is not to mimic the
> document object model in our URLs, but to provide for location and
> navigation. Furthermore, nesting everything under a DOM object page makes
> the URL longer.
> >
> >
> > API Listing pages
> >
> > It was suggested that we remove the API Listing pages from the apis
> namespace. I strongly urge us not to do so.
> >
> > The API listing pages describe the API by its common names - the names
> by which users search for information about the API. It provides for
> find-ability where an API has multiple "listing names" - as is the case
> with the WebRTC API which is further sub-divided into the MediaStream,
> PeerConnection, and DataChannel APIs. These need to be included as
> sub-headings in the listing page to fully describe the API.
> >
> > The API listing pages provide an overview of how to use the API objects
> included in the specification. The best place to do this is within the apis
> namespace, rather than a "concepts" or "guides" or other namespace.
> >
> > The API listing pages provide for disambiguation between like-named API
> objects. Consider two objects:
> >
> > * The MediaStreamAudioSourceNode object from the Web Audio API
> > * The MediaStream object from the WebRTC API
> >
> > In fact, both of these are the same thing, as creating a
> MediaStreamAudioSourceNode is simply passing to that object an object of
> type MediaStream:
> >
> >
> > MediaStreamAudioSourceNode createMediaStreamSource ( MediaStream
> mediaStream );
> >
> > If our URLs read, apis/MediaStreamAudioSourceNode and /apis/MediaStream
> without any context to differentiate them, users are likely to get confused.
> >
> >
> > Action Item: Proving out the apis architecture
> >
> > I'm concerned that there may have been a miscommunication about the
> action item captured at the end of the meeting. This happened while the
> meeting was adjourning, and may have been misconstrued. Here's the snippet
> from the IRC channel:
> >
> > 9:57 AM <sierra_> TASK: someone sanity-check how actual APIs would work
> > 9:59 AM <sierra_> in apis/<apilist>/objects/<apiObject>/properties , go
> to apis/APIobject/properties
> > 10:00 AM <sierra_> sorry, apis/APIobject
> >
> >
> > What I heard was that the action item is to review the apis namespace to
> see if there would be collisions between api objects without the
> intervening <apilist> object. First, it is unlikely that within our very
> limited apis namespace that this will happen (we currently have some 8 or 9
> APIs, not counting DOM APIs); second, we can never fully prove the lack of
> collisions because we don't have time to review the entire set of standard
> APIs - and we certainly can't vet the ones that haven't been created yet.
> >
> > Perhaps someone could fill in here why this exercise is necessary and
> what it hopes to prove?
> >
> > Would it not be more efficacious to simply proceed with maintaining the
> <apilist> namespace identifier - as in apis/<apilist>/<apiObject>/<etc.>?
> >
> > Thanks for helping out here!
> >
> > +Scott
> >
> >
> >
> >
> > On Tue, Nov 13, 2012 at 12:23 PM, PhistucK <phistuck@gmail.com> wrote:
> >
> > I am planning on adding fields for constants within the API Object
> template/form. It might take a few days, though. I hope to work on it on
> Friday or Saturday.
> >
> > ☆PhistucK
> >
> >
> >
> >
> > On Tue, Nov 13, 2012 at 9:06 PM, David Gash <dgash@google.com> wrote:
> >
> > Scott,For tomorrow's call, apart from the basic issue of the API content
> architecture, let's discuss the web audio list before I set off creating
> ~150 pages. Also, I have a few questions about certain parts of the
> interface that you (or someone else) may be able to answer, below. The
> numbers refer to the W3C spec <
> https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html>,
> and are linked to the specific sections for easy reference.
> >
> > 4.3 <
> https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioSourceNode>
> AudioSourceNode
> > Listed as an "abstract" interface, has no documented properties or
> methods.
> >
> > 4.11 <
> https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#MediaElementAudioSourceNode>
> MediaElementAudioSourceNode
> > Created in an Audiocontext, has no documented properties or methods.
> >
> > 4.14.1 <
> https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#PannerNode-sub>
> PannerNode Constants
> > There's no API structure/path for constants.
> >
> > 4.18 <
> https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#ChannelSplitterNode>
> ChannelSplitterNode and
> > 4.19 <
> https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#ChannelMergerNode>
> ChannelMergerNode
> > Also have no documented properties or methods.
> >
> >
> > 4.24 <
> https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#WaveTable>
> WaveTable and
> > 4.25 <
> https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#MediaStreamAudioSourceNode>
> MediaStreamAudioSourceNode
> > Also have no documented properties or methods.
> >
> >
> > I'm not sure whether to create pages for the objects with no properties
> or methods, and whether to document the PannerNode constants as properties
> or... something else. Any input appreciated.
> >
> > Dave
> >
> >
> >
> > On Mon, Nov 12, 2012 <tel:2012> at 12:06 PM, Scott Rowe <
> scottrowe@google.com> wrote:
> >
> > Thanks Dave! Be sure to share any issues you encounter on this thread.
> >
> >
> >
> >
> >
> >
> >
> > +Scott
> >
> >
> >
> > On Mon, Nov 12, 2012 <tel:2012> at 11:16 AM, David Gash <
> dgash@google.com> wrote:
> >
> > Scott / all,
> > I'm starting to document the web audio API. Based on Scott's proposal
> doc and the W3C specs, the first few topics' URLs will be structured thus:
> >
> > apis/webaudio
> >
> > apis/webaudio/objects/AudioContext/properties/destination
> >
> > apis/webaudio/objects/AudioContext/properties/sampleRate
> > apis/webaudio/objects/AudioContext/properties/currentTime
> > apis/webaudio/objects/AudioContext/properties/listener
> > apis/webaudio/objects/AudioContext/properties/activeSourceCount
> > apis/webaudio/objects/AudioContext/methods/createBuffer
> > apis/webaudio/objects/AudioContext/methods/decodeAudioData
> > apis/webaudio/objects/AudioContext/methods/createBufferSource
> > apis/webaudio/objects/AudioContext/methods/. . . etc.
> >
> > apis/webaudio/objects/AudioNode/properties/context
> > apis/webaudio/objects/AudioNode/properties/numberOfInputs
> > apis/webaudio/objects/AudioNode/properties/numberOfOutputs
> > apis/webaudio/objects/AudioNode/methods/connect
> > apis/webaudio/objects/AudioNode/methods/disconnect
> >
> > apis/webaudio/objects/. . . etc.
> >
> > There are a lot more objects, properties, and methods in this API, of
> course, but Scott has reviewed this plan and, barring any objections,
> that's the path structure I'll be following.
> >
> > I plan to outline the entire set before creating any pages, then create
> all the stubs, then go back and fill in.
> >
> > Cheers,
> > Dave
> >
> >
> >
> > On Thu, Nov 8, 2012 <tel:2012> at 12:03 PM, Scott Rowe <
> scottrowe@google.com> wrote:
> >
> >
> > When I sat down to document the process for creating API pages, using
> the WebRTC documentation as the poster child, I found more questions than
> answers. I realized that we did not have a good story here, so I did my
> best to fill in the holes with a methodology that attempts to solve the
> problems I found.
> > You find this methodology described in WPD:Creating_API_pages <
> http://docs.webplatform.org/wiki/WPD:Creating_API_pages>.
> >
> > Note that it started out as a how-to for contributors, but quickly
> became a proposal. So parts of it will read either way. Don't be alarmed.
> The purpose of the document is to provide you with a methodology to try on
> as you do what I did - test it out with your own API pages.
> >
> > As you do, please don't update the methodology in that page - let's
> discuss it first. We can use this thread for the discussion.
> >
> > Thanks for your help!
> >
> > +Scott
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
>
>
Received on Tuesday, 20 November 2012 16:26:19 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 8 May 2013 19:57:35 UTC