OpenAPI系列: 五、平台使用

直入主题,简单介绍下平台基本使用。

 

1、下载最新源码

http://openapi.codeplex.com/SourceControl/list/changesets

 

2、开发工具准备

请参照前面提到的环境需求进行配置。

 

3、数据库准备

OpenAPI提供了两种平台的数据库:SQL Server 2005、Oracle 9i

 

4、配置数据库连接参数

平台的数据访问层由NHibernate实现,可以方便进行配置。打开OpenAPI\OpenAPI.Web.Mvc工程下的web.config文件,找到 hibernate-configuration 配置节:

ExpandedBlockStart.gif 代码
< hibernate-configuration  xmlns ="urn:nhibernate-configuration-2.2" >
        
< session-factory  name ="NhiLINQ" >
            
< property  name ="connection.driver_class" > NHibernate.Driver.SqlClientDriver </ property >
            
< property  name ="connection.connection_string" >
                Data Source=liuxiaojun\sqlexpress;Initial Catalog=OpenAPI_v1;Persist Security Info=True;User ID=sa;Password=1qazxsw2
            
</ property >

            
< property  name ="adonet.batch_size" > 10 </ property >
            
< property  name ="show_sql" > false </ property >
            
< property  name ="dialect" > NHibernate.Dialect.MsSql2005Dialect </ property >
            
< property  name ="use_outer_join" > true </ property >
            
< property  name ="command_timeout" > 10 </ property >
            
< property  name ="query.substitutions" > true 1, false 0, yes 'Y', no 'N' </ property >

            
<!-- 2.1要配置延迟加载的代理 这里配置为Castle  -->
            
< property  name ="proxyfactory.factory_class" > NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle </ property >

            
< mapping  assembly ="OpenAPI.Model" />
        
</ session-factory >
    
</ hibernate-configuration >

 

修改以下数据库连接信息:

ExpandedBlockStart.gif 代码
< property  name ="connection.connection_string" >
     Data Source=liuxiaojun\sqlexpress;Initial Catalog=OpenAPI_v1;Persist Security Info=True;User ID=sa;Password=1qazxsw2
</ property >

 

 

以上配置信息是NHibernate必须有的,另外本项目还提供了扩展的配置文件,<appSettings>配置节中:

< add  key ="XmlConfigurationFilePath"  value ="D:\51API\Src\Config\sqlserver_openapi.cfg.xml" />

 

 注意:如果以上配置节的配置文件存在,那么系统运行时会默认按照此配置节的扩展配置文件中的信息进行NHibernate初始化,而不会按照web.config中hibernate-configuration 配置节进行初始化。

 

以上引用扩展的配置文件的内容如下:

sqlserver_openapi.cfg.xml

ExpandedBlockStart.gif 代码
<? xml version="1.0" encoding="utf-8" ?>
<!--  
This template was written to work with NhiLINQ.
Copy the template to your NhiLINQ project folder and rename it in hibernate.cfg.xml and change it 
for your own use before compile tests in VisualStudio.
-->
<!--  This is the System.Data.OracleClient.dll provider for Oracle from MS  -->
< hibernate-configuration   xmlns ="urn:nhibernate-configuration-2.2"   >
    
< session-factory  name ="NhiLINQ" >
        
< property  name ="connection.driver_class" > NHibernate.Driver.SqlClientDriver </ property >
        
< property  name ="connection.connection_string" >
            Data Source=liuxiaojun\sqlexpress;Initial Catalog=OpenAPI_v1;Persist Security Info=True;User ID=sa;Password=1qazxsw2
        
</ property >

        
< property  name ="adonet.batch_size" > 10 </ property >
        
< property  name ="show_sql" > false </ property >
        
< property  name ="dialect" > NHibernate.Dialect.MsSql2005Dialect </ property >
        
< property  name ="use_outer_join" > true </ property >
        
< property  name ="command_timeout" > 10 </ property >
        
< property  name ="query.substitutions" > true 1, false 0, yes 'Y', no 'N' </ property >

        
<!-- 2.1要配置延迟加载的代理 这里配置为Castle  -->
        
< property  name ="proxyfactory.factory_class" > NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle </ property >

        
< mapping  assembly ="OpenAPI.Model" />
    
</ session-factory >
</ hibernate-configuration >

 

 

项目同时提供了Oracle的扩展配置文件:

oracle_openapi.cfg.xml

ExpandedBlockStart.gif 代码
<? xml version="1.0" encoding="utf-8" ?>
<!--  
This template was written to work with NhiLINQ.
Copy the template to your NhiLINQ project folder and rename it in hibernate.cfg.xml and change it 
for your own use before compile tests in VisualStudio.
-->
<!--  This is the System.Data.OracleClient.dll provider for Oracle from MS  -->
< hibernate-configuration   xmlns ="urn:nhibernate-configuration-2.2"   >
    
< session-factory  name ="NhiLINQ" >
        
< property  name ="connection.driver_class" > NHibernate.Driver.OracleClientDriver </ property >
        
< property  name ="connection.connection_string" >
            Data Source=crm;User id=openapi;Password=1qazxsw2;
        
</ property >

        
< property  name ="adonet.batch_size" > 10 </ property >
        
< property  name ="show_sql" > false </ property >
        
< property  name ="dialect" > NHibernate.Dialect.Oracle9iDialect </ property >
        
< property  name ="use_outer_join" > true </ property >
        
< property  name ="command_timeout" > 10 </ property >
        
< property  name ="query.substitutions" > true 1, false 0, yes 'Y', no 'N' </ property >

        
<!-- 2.1要配置延迟加载的代理 这里配置为Castle  -->
        
< property  name ="proxyfactory.factory_class" > NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle </ property >
        
        
< mapping  assembly ="OpenAPI.Model" />
    
</ session-factory >
</ hibernate-configuration >

 

 

注意:如果使用Oracle数据还需更改实体类的映射文件信息,如:OpenAPI\OpenAPI.Model下的API\DocumentInfo.hbm.xml映射文件,代码如下:

 

ExpandedBlockStart.gif 代码
<? xml version="1.0" encoding="utf-8"  ?>
< hibernate-mapping  xmlns ="urn:nhibernate-mapping-2.2"  assembly ="OpenAPI.Model"  namespace ="OpenAPI.Model.API" >
    
< class   name ="OpenAPI.Model.API.DocumentInfo, OpenAPI.Model"  table ="T_API_DOCUMENT" >
        
< id  name ="DOC_CD"  column ="DOC_CD"  type ="String"  length ="50" >
            
< generator  class ="assigned"   />
        
</ id >
        
< property  name ="DOC_SUBJECT"  column ="DOC_SUBJECT"  type ="String"  length ="200"  not-null  ="true" />
        
< property  name ="DOC_DATETIME"  column ="DOC_DATETIME"  type ="DateTime"  not-null  ="true" />
        
< property  name ="DOC_AUTHOR"  column ="DOC_AUTHOR"  type ="String"  length ="50"   />
        
< property  name ="DOC_TAGS"  column ="DOC_TAGS"  type ="String"  length ="50"   />
        
< property  name ="DOC_BODY"  type ="StringClob" >
            
< column  name ="DOC_BODY"  sql-type ="NText" ></ column >
        
</ property >
    
</ class >
</ hibernate-mapping >

 

其中sql-type="NText"需要修改为sql-type="NCLOB"

 

5、配置Log4net信息

参照appSettings配置节中:

< add  key ="Log4netXmlConfigFilePath"  value ="D:\51API\Src\Config\log4net.cfg.xml" />

 

 

引用的扩展配置文件内容如下:

log4net.cfg.xml

ExpandedBlockStart.gif 代码
<? xml version="1.0" encoding="utf-8"  ?>
< log4net >

    
< root >
        
<!-- 如果只需要看看Sql设置INFO就够了,如果你要调试可以设置为DEBUG或ALL -->
        
< priority  value ="INFO"   />
        
< appender-ref  ref ="RollingFile_nhi"   />
    
</ root >


    
< logger  name ="ApplicationInfoLog" >
        
< level  value ="DEBUG"   />
        
< appender-ref  ref ="RollingFile_sys"   />
    
</ logger >


    
< appender  name ="RollingFile_nhi"  type ="log4net.Appender.RollingFileAppender,log4net"   >

        
< param  name ="File"  value ="D:\51API\log\"   />
        
< param  name ="AppendToFile"  value ="true"   />
        
< param  name ="RollingStyle"  value ="Date"   />
        
< param  name ="DatePattern"  value ="yyyyMMdd&quot;_nhi.log&quot;"   />
        
< param  name ="StaticLogFileName"  value ="false"   />

        
< layout  type ="log4net.Layout.PatternLayout,log4net" >
            
< param  name ="ConversionPattern"  value ="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt; - %m%n"   />
        
</ layout >
    
</ appender >

    
< appender  name ="RollingFile_sys"  type ="log4net.Appender.RollingFileAppender,log4net"   >

        
< param  name ="File"  value ="D:\51API\log\"   />
        
< param  name ="AppendToFile"  value ="true"   />
        
< param  name ="RollingStyle"  value ="Date"   />
        
< param  name ="DatePattern"  value ="yyyyMMdd&quot;_sys.log&quot;"   />
        
< param  name ="StaticLogFileName"  value ="false"   />

        
< layout  type ="log4net.Layout.PatternLayout,log4net" >
            
< param  name ="ConversionPattern"  value ="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt; - %m%n"   />
        
</ layout >
    
</ appender >

</ log4net >

 

 

6、配置后台管理账户

参见appSettings配置节中如下代码:

<!--  管理Account BEGIN  -->
< add  key ="MANAGE_USERID"  value ="xiaojun" />
< add  key ="MANAGE_PASSWORD"  value ="1234" />
<!--  管理Account END  -->

 

 

7、运行

运行OpenAPI.Web.Mvc项目默认使用6000端口,即:http://localhost:6000/ ,IIS设置在此不进行介绍。使用web.config中配置的管理帐号登录(记得勾选“Log on as manager”),登录后转到ManageTab选项,界面如下: 

 

 

 8、初始化

在上面界面中点击Schema Manage--Create/Drop/Init菜单,进行Schema创建、初始化数据、删除操作,截图如下:

 

9、消费方(Consumer)登录

初始化数据库后,系统中会自动增加一个Consumer,在登录画面中默认填充上了,直接输入验证码登录(不必勾选“Log on as manager”)。消费方可以使用Document、Test两个Tab选项,其中Test为在线测试环境,目前提供了GET/POST两种调用方式,截图如下:

 

 

 

 

 

[返回导航]

 

转载于:https://www.cnblogs.com/liuxiaojun/archive/2010/09/03/openapi_guide.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
通用接口实现类LinkJOS 扩展于:public class LinkJOS extends LinkOAuth2(LinkOAuth2 extends JspEasy) 构造函数 LinkJOS(HttpServletRequest request,HttpServletResponse response) 京东JOS接口访问函数 public String link2(String link,String method,Bag sys,Bag apps,String appSecret,String file,String FileField) 作用:访问京东JOS平台的所有接口 参数: String link,京东JOS平台接口访问地址,目前固定为:https://api.jd.com/routerjson String method,向京东JOS平台提交数据时的方法,需要应用级别参数时建议用POST方法,不需要时用GET(参见后边的实例) Bag sys,系统级别参数书包(一般只需在接口参数文件中放入接口方法即可,参见后边的实例) Bag apps,应用级别参数书包(在接口参数文件中放入必须的应用级别参数,若不需要应用级别参数时直接用new Bag(-1)构造一个空书包即可,参见后边的实例) String appSecret,应用证书中的App Secret,前边已经设置,固定用"@{pPage:app_secret}"即可 String file,调用上传文件接口上传文件(如图片)到京东JOS平台时的文件全名(含相对路径,如:images/logo.png),不是调用上传文件接口时为空字符串即可(参见后边的实例) String FileField,调用上传文件接口上传文件(如图片)到京东JOS平台时的字段名,配合前边的参数,不是调用上传文件接口时为空字符串即可(参见后边的实例) 返回为京东JOS平台接口对应的JSON格式的字符串 JSON文本解析方法 public void parseJson(String json) 作用:解析京东JOS平台接口返回的JSON格式的字符串,并根据内容生成N个对应的书包 参数:String json,京东JOS平台接口返回的JSON格式的字符串 根据JSON文本的内容在系统中生成N个书包,根书包名称为j0,下一层的josn文本内容生成的书包名称用上一层的Key放在上一层的书名中,下边用实例说明寻找对应书包的方法: 如店铺信息查询接口jingdong.vender.shop.query返回的json文本为 { "jingdong_vender_shop_query_responce": { "shop_jos_result": { "open_time": "", "shop_id": "", "category_main_name": "", "category_main": "", "vender_id": "", "brief": "", "logo_url": "", "shop_name": "" } } } 找出店铺信息书包名的方法如下 @{j0:jingdong_vender_shop_query_responce} @{@{pPage:bag}:shop_jos_result} 这时候的@{pPage:bag}即为需要的店铺信息书包名 具体用法请阅读下载包中的《京东卖家如何快速开发网店工具软件》
OpenAPI 3.0.1是一种用于描述和定义RESTful API的规范。它提供了一种标准的方式来描述API的端点、参数、请求和响应等信息。根据提供的引用内容,可以看出在后端项目中,通过使用OpenAPI 3.0.1规范的依赖包和插件,可以将JSON文件转换为OpenAPI 3.0.1格式的文档,并通过访问相应的接口来展示API页面。具体的使用方式是引入依赖包org.microprofile-ext.openapi-ext的openapi-ui版本1.1.5,并在项目启动后访问http://localhost:8080/xxx/openapi-ui接口来查看API页面。这个接口实际上是先访问http://localhost:8080/openapi接口获取OpenAPI文档,然后通过ui插件OpenApiUiService进行渲染展示到页面上。更多详细信息可以参考提供的引用内容中的博主的文章。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [OpenApi3对象与类定义,JSONObject,json文件之间的转换。](https://blog.csdn.net/u012196940/article/details/123396252)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [OpenAPI指南](https://blog.csdn.net/xiaoyi52/article/details/121198620)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值