Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

My Google cloud endpoint API is not visible on the api explorer

I am very new to google app engine and endpoints and have been writing basic endpoint functions and deploying to the cloud. I succesfully deployed a HelloWorld endpoint and tested it over the API explorer: http://localhost:8080/_ah/api/explorer

But now when I have created a new endpoint API and followed the same steps (i.e deployed using new APP engine application name in the appengine-web.xml, run as appengine:update), the api explorer still shows my HelloWorld endpoint instead of my new API "yourfirstendpoint".

I've searched and tried to find an answer to no avail - and im sorry if this is a very basic and stupid question on my part (im sure it is) but i would realy appreciate if somebody could point me in the right direction on what i should be doing.

My API

    package com.example.zinglife;

    import com.google.api.server.spi.config.Api;
    import com.google.api.server.spi.config.ApiMethod;
    import com.google.api.server.spi.config.ApiMethod.HttpMethod;
    import com.google.api.server.spi.response.NotFoundException;
    import com.google.appengine.api.datastore.Key;
    import com.google.appengine.api.datastore.KeyFactory;


    /**
    * 
    * Defines endpoint functions APIs.
    */
    @Api(name = "yourfirstapi", version = "v1",
    scopes = {Constants.EMAIL_SCOPE },
           clientIds = {Constants.API_EXPLORER_CLIENT_ID},
           description = "API for hello world endpoints.")

    public class YourFirstAPI
    {

    
    @ApiMethod(name = "storeUserModel")

       private User storeUserModel(User user) throws  NotFoundException
     {
         
          String email = user.getEmail();
           Key key = KeyFactory.createKey("User",email);
        
            User userEntity = null;
            try 
        {
                
        if (userEntity==null)
            {   
              userEntity = new User();
              userEntity.setName(user.getName());
              userEntity.setEmail(user.getEmail());
              userEntity.setCountry(user.getCountry());
            //
             
            }
        
                

            return userEntity;
        
        
        }//*endtry
            finally
            {
                
            }
            
        
       
       
     
     } 
      

    }

The App engine Administrator Log after running the code:

App engine Administrator Log

Please let me know if any other information is needed :)

like image 337
Wayne Viegas Avatar asked Nov 08 '22 19:11

Wayne Viegas


1 Answers

Make sure you have added your new service as one of the values for the 'services' parameter of the EndPointsServlet.

<servlet>
    <!-- This is version 2.0 of the endpoints framework. -->
    <servlet-name>EndpointsServlet</servlet-name>
    <servlet-class>com.google.api.server.spi.EndpointsServlet</servlet-class>
    <init-param>
        <param-name>services</param-name>

        <!-- Comma separated classes that provide endpoints -->
        <param-value>
            com.mycompany.myproduct.endpoint.SomeServiceV1,
            com.mycompany.myproduct.endpoint.SomeServiceV2,
            com.mycompany.myproduct.endpoint.SomeOtherServiceV1,
            com.mycompany.myproduct.endpoint.SomeOtherServiceV2,
            com.mycompany.myproduct.endpoint.SomeOtherServiceV3
        </param-value>
    </init-param>
</servlet>
like image 85
William Avatar answered Nov 14 '22 22:11

William