[gradebook2-dev] Gradebook2 webservices

Jon Gorrono jpgorrono at ucdavis.edu
Wed Feb 16 14:25:52 PST 2011


yes that will work fine.. I see now you're going through the portal
and a specific tool in an a specific site, with an established
session, you get just what the browser client gets. I thought you
wanted to get at the data without a session...but this is a perfectly
valid approach... it's sort of shortcutting the deficiencies in gb2's
generalized REST support in the same way the browser client does. :)

We'll have to get all the url param's into the path someday, among other things.


On Mon, Feb 14, 2011 at 12:06 PM, Geng, Kelly <gengx at muohio.edu> wrote:
> Hi Jon,
>
> This is the curl command I was using:
>
> curl -k --cookie "gb2version=1.3.1; SaneID=134.53.x.xxx-1295626567328485;
> JSESSIONID=8057bae2-7b38-48e3-b808-2d72ae546a5f.myserver-02" --header
> "X-XSRF-Cookie:8057bae2-7b38-48e3-b808-2d72ae546a5f. myserver-02"
> https://myserver/portal/tool/d10a1c9e-66af-4084-ac1c-c5a07d059e8a/gradebook/rest/roster/87450467-8cab-4fc3-be7c-00a3e6245965/1/?sortField=S_LST_NM_FRST&sortDir=ASC&offset=0&limit=19
>
> This approach should work once we set up a session from the external system?
>
> Thanks,
> Kelly
>
>
> -----Original Message-----
> From: Jon Gorrono [mailto:jpgorrono at ucdavis.edu]
> Sent: Friday, February 11, 2011 8:56 PM
> To: Geng, Kelly
> Cc: Sakai Programming Team; gradebook2-dev at collab.sakaiproject.org;
> nicolamj at gmail.com; Jayanna, Sid
> Subject: Re: [gradebook2-dev] Gradebook2 webservices
>
> Hi, Kelly.
>
> It's interesting to me that you're not getting any errors... the getRoster
> methods calls the private method getSite which in short does
> toolManager.getCurrentPlacement().getContext()... the placement should be
> null if you are curl'ing directly to the REST service, eg.
> /sakai-gradebook2/rest.....' ... this requires gb2.security.enabled=false
>
> The only way I know for you to have a (non-null) request tool placement is
> to use a url like '/portal/site/xxx/page/yyy/...'
>
> Can you post a sample of the url's you are using the trigger the json
> response?
>
> On Thu, Feb 10, 2011 at 11:06 AM, Geng, Kelly <gengx at muohio.edu> wrote:
>> Hi Jon,
>>
>> This is Kelly, working on the same project(grade submission from Sakai to
>> Banner) with Sid. Following your discussion, I did some test on calling the
>> Gradebook REST service from outside of Sakai to prove whether our idea will
>> work. What I did was:
>> -Using Curl to send the https request using the REST URL copied from
>> the Sakai instance, -copy the cookie value of a valid Sakai session
>> from the web browser, and send it along, -forged a HTTP header of
>> X-XSRF-Cookie(with the session id as the value) and sent it along
>>
>> I did the test for the "roster" service and I did get valid JSON data as
>> the response. I am planning to do more test on some other services which we
>> will potentially be using. At the same time, we would like to know whether
>> you see any potential issues with this approach. Are there any better ways
>> to authenticate the service calls? Will it cause problems in future releases
>> of Gradebook2? Any input will be appreciated.
>>
>> Thanks,
>> Kelly
>>
>>
>>
>> -----Original Message-----
>> From: gradebook2-dev-bounces at collab.sakaiproject.org
>> [mailto:gradebook2-dev-bounces at collab.sakaiproject.org] On Behalf Of
>> Jon Gorrono
>> Sent: Monday, January 31, 2011 8:41 PM
>> To: Jayanna, Sid
>> Cc: Sakai Programming Team; gradebook2-dev at collab.sakaiproject.org
>> Subject: Re: [gradebook2-dev] Gradebook2 webservices
>>
>> Sid,
>>
>> We found a few places where the service calls make the assumption that
>> there is a current site... if you are establishing a session in sakai
>> through some alternative method, that may not be the case.... If you
>> run run into this case (usually a NullPointerException) in the logs,
>> please post a note about it.... we should probably be finding
>> solutions for all the cases.
>>
>> jP
>>
>> On Mon, Jan 31, 2011 at 1:56 PM, Thomas Amsler <tpamsler at ucdavis.edu>
>> wrote:
>>> Sid,
>>>
>>> Assuming you are doing this from a browser with some sort of REST
>>> plugin (e.g.Chrome and cREST client), you can make the (GET, POST,
>>> DELETE, PUT) REST calls as long as:
>>>
>>> - You have established a valid Sakai session
>>> - You provide the valid path parameters
>>>
>>> All the gradebook2 REST resources are located here:
>>>
>>> https://source.sakaiproject.org/contrib/gradebook2/trunk/server/src/j
>>> ava/org/sakaiproject/gradebook/gwt/sakai/rest/resource/
>>>
>>> So you should be able to look at those classes and determine what the
>>> path parameters are. Also, if you develop gradebook2 in GWT DEV mode,
>>> you can use the following url:
>>>
>>> http://127.0.0.1:8888/gradebook/rest/application.wadl
>>>
>>> ... to get the Jersey generated WADL. I have attached the generated
>>> sample output.
>>>
>>> I hope this helps.
>>>
>>> Best,
>>> -- Thomas
>>>
>>>
>>> On Mon, Jan 31, 2011 at 12:32 PM, Jayanna, Sid <jayannsd at muohio.edu>
>>> wrote:
>>>> Hi Thomas,
>>>> Thanks for taking the time to reply to my emails.
>>>> If I understand the REST implementation correctly, don't gradebook2
>>>> provide some kind of URI to manipulate (get/post/put/delete)
>>>> resources?
>>>> please bear with me here, I noticed on our log while working with
>>>> gradebook2
>>>> these messages (ipaddress have been masked to protect the guilty) -
>>>> ------
>>>> [31/Jan/2011:14:41:46 -0500] x.x.x.x TLSv1 AES256-SHA "GET
>>>>
>>>> /portal/tool/d10a1c9e-66af-4084-ac1c-c5a07d059e8a/gradebook/rest/ros
>>>> ter/87450467-8cab-4fc3-be7c-00a3e6245965/1/?sortField=S_LST_NM_FRST&
>>>> sortDir=ASC&offset=0&limit=19
>>>> HTTP/1.1"
>>>> [31/Jan/2011:14:15:16 -0500] x.x.x.x TLSv1 DHE-RSA-AES256-SHA "POST
>>>>
>>>> /portal/tool/d10a1c9e-66af-4084-ac1c-c5a07d059e8a/gradebook/rest/ite
>>>> m/87450467-8cab-4fc3-be7c-00a3e6245965/1/
>>>> HTTP/1.1"
>>>> -----------------
>>>> So it appears like the GWT client is making GET/POST REST calls to
>>>> work with the resources on the server? but when I copy the above url
>>>> and try to run it from the address bar I get "ERROR: SESSIONID is
>>>> null".
>>>> So, theoretically I should be able to call the same URI from my
>>>> broker application to get a roster with grades, is my understanding
>>>> correct?
>>>> Also, if you can point me to some documentation of the REST
>>>> implementation will be very helpful.
>>>> Please let me know if you have any questions.
>>>> Thanks,
>>>> Sid
>>>>
>>>>
>>>>
>>>> On Jan 28, 2011, at 4:27 PM, Thomas Amsler wrote:
>>>>
>>>> That would be one way to extend the existing Sakai (Axis) SOAP
>>>> service endpoints. Gradebook2 uses REST (JAX-RS) to communicate
>>>> between client and the server. So you could potentially expand on
>>>> that by providing a new REST resource that returns the required
>>>> data. Both approaches are valid.
>>>> -- Thomas
>>>>
>>>> On Fri, Jan 28, 2011 at 1:21 PM, Jayanna, Sid <jayannsd at muohio.edu>
>>>> wrote:
>>>>
>>>> Thanks Thomas, that helps.
>>>>
>>>> So, there are no webservices listening by default which can provide
>>>> me the roster with grades (like a REST Get call) from the broker
>>>> application.
>>>>
>>>> That webservice needs to be designed on the sakai end similar to the
>>>> SakaiLogin.jws. Is my understanding correct?
>>>>
>>>> Thanks,
>>>>
>>>> Sid
>>>>
>>>> On Jan 28, 2011, at 4:14 PM, Thomas Amsler wrote:
>>>>
>>>> Sid,
>>>>
>>>> The details of the final grade submission handling  is implemented
>>>> by
>>>>
>>>> and implementation of the InstitutionalAdvisor.java interface. When
>>>>
>>>> the user clicks on the submit final grade menu item, it makes a REST
>>>>
>>>> call to SubmitFinalGrades.java
>>>>
>>>> That class calls the
>>>> Gradebook2ComponentService.submitFinalGrade(...)
>>>>
>>>> method, which in turn calls the
>>>>
>>>> InstitutionalAdvisor.submitFinalGrade(...) method. So you should
>>>>
>>>> implement your version of the InstitutionalAdvisor interface and use
>>>>
>>>> it via Spring injection. There is a default implementation of the
>>>>
>>>> InstitutionalAdvisor interface in SampleInstitutionalAdvisor.java
>>>>
>>>> I hope this helps.
>>>>
>>>> Best,
>>>>
>>>> -- Thomas
>>>>
>>>> On Fri, Jan 28, 2011 at 11:55 AM, Jayanna, Sid <jayannsd at muohio.edu>
>>>> wrote:
>>>>
>>>> Hi Thomas,
>>>>
>>>> I was wondering if gradebook2 exposes any REST webservices for me to
>>>> consume to submit the final grades to another broker application
>>>> which will send it to our SIS.
>>>>
>>>> If you could point me to some resources will be very helpful.
>>>>
>>>> Thanks,
>>>>
>>>> Sid
>>>>
>>>> On Oct 6, 2010, at 2:26 PM, Thomas Amsler wrote:
>>>>
>>>> Yes
>>>>
>>>> On Wednesday, October 6, 2010, Jayanna, Sid <jayannsd at muohio.edu> wrote:
>>>>
>>>> Sure, I will create my first jira.
>>>>
>>>> That will be a feature request right?
>>>>
>>>> Thanks,
>>>>
>>>> Sid
>>>>
>>>> On Oct 6, 2010, at 2:11 PM, Thomas Amsler wrote:
>>>>
>>>> As far as I know, we haven't added a tool icon for gradebook2 yet.
>>>> Would you mind creating a GRBK jira for this:
>>>>
>>>> http://jira.sakaiproject.org/browse/GRBK
>>>>
>>>> Best,
>>>>
>>>> -- Thomas
>>>>
>>>> On Wed, Oct 6, 2010 at 10:53 AM, Jayanna, Sid <jayannsd at muohio.edu>
>>>> wrote:
>>>>
>>>> The reason I wanted to test gradebook2 on a nightly server is due to
>>>> a missing icon on my Sakai build. I am using Sakai src tag 2.7.1 and
>>>> gradebook2 1.3.0
>>>>
>>>> I have attached a screen shot. As you can see from the screen shot,
>>>> the icon for gradebook2 is missing.
>>>>
>>>> I would appreciate if you can shed some light on why the icon is
>>>> missing.
>>>>
>>>> Thanks,
>>>>
>>>> Sid
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>> [see attachment: "application.wadl", size: 20903 bytes]
>>>
>>>
>>> Attachments:
>>>
>>> application.wadl
>>>
>>> ________________________________
>>> This automatic notification message was sent by SmartSite at UCDavis
>>> (https://smartsite.ucdavis.edu/xsl-portal) from the UCD Sakai Dev site.
>>> You can modify how you receive notifications at My Workspace >
>>> Preferences.
>>>
>>
>>
>>
>> --
>> Jon Gorrono
>> PGP Key: 0x5434509D -
>> http{pgp.mit.edu:11371/pks/lookup?search=0x5434509D&op=index}
>> GSWoT Introducer - {GSWoT:US75 5434509D Jon P. Gorrono <jpgorrono -
>> gswot.org>} http{sysdev.ucdavis.edu}
>> _______________________________________________
>> gradebook2-dev mailing list
>> gradebook2-dev at collab.sakaiproject.org
>> http://collab.sakaiproject.org/mailman/listinfo/gradebook2-dev
>>
>
>
>
> --
> Jon Gorrono
> PGP Key: 0x5434509D -
> http{pgp.mit.edu:11371/pks/lookup?search=0x5434509D&op=index}
> GSWoT Introducer - {GSWoT:US75 5434509D Jon P. Gorrono <jpgorrono -
> gswot.org>} http{sysdev.ucdavis.edu}
> ________________________________
> This automatic notification message was sent by SmartSite at UCDavis
> (https://smartsite.ucdavis.edu/xsl-portal) from the UCD Sakai Dev site.
> You can modify how you receive notifications at My Workspace > Preferences.
>



-- 
Jon Gorrono
PGP Key: 0x5434509D -
http{pgp.mit.edu:11371/pks/lookup?search=0x5434509D&op=index}
GSWoT Introducer - {GSWoT:US75 5434509D Jon P. Gorrono <jpgorrono - gswot.org>}
http{sysdev.ucdavis.edu}


More information about the gradebook2-dev mailing list